Textdatenbanken Jana Bulik 98I 15. November 2001

Preview:

Citation preview

TextdatenbankenTextdatenbanken

Jana Bulik 98I

15. November 2001

Textdatenbanken - ÜberblickTextdatenbanken - Überblick

1. Laden von Texten / Dokumenten2. Indexieren und Indexwartung3. Anfragen und Anfrageoperatoren 4. Highlighting und Präsentation von

Ergebnisdokumenten 5. Vergleich Oracle InterMedia Text

mit SQL/MM Full Text

1. Laden von Texten/Dokumenten1. Laden von Texten/Dokumenten

1. Laden von Texten/Dokumenten1. Laden von Texten/Dokumenten

1. Datastored Objekte2. SQL – Insertanweisung3. ctxload

1. Laden von Texten/Dokumenten1. Laden von Texten/Dokumenten

1.1 Datastored Objekte- DIRECT_DATASTORE- DETAIL_DATASTORE- FILE_DATASTORE- URL_DATASTORE- USER_DATASTORE

1. Laden von Texten/Dokumenten1. Laden von Texten/Dokumenten

DIRECT_DATASTORE- besitzt keine Attribute- Speicherung der Daten intern in

Textspalten- einzelne Zeile wird als einzelnes

Dokument angezeigt

1. Laden von Texten/Dokumenten1. Laden von Texten/Dokumenten

DETAIL_DATASTORE- Datenspeicherung wie bei DIRECT_DATASTORE- Dokument besteht aus mind. einer Zeile- Attribute:

• binary• detail_table• detail_key• detail_lineno• detail_text

1. Laden von Texten/Dokumenten1. Laden von Texten/Dokumenten

FILE_DATASTORE- Datenspeicherung extern in den

Daten des Betriebssystems- Path – Attribut gibt an, wo

externes Textfile gespeichert ist

1. Laden von Texten/Dokumenten1. Laden von Texten/Dokumenten

URL_DATASTORE- Datenspeicherung extern im Internet

bzw. Intranet- Attribute:

• Timeout• Maxthreads• Urlsize• Maxurls• Maxdocsize• http_proxy und ftp_proxy• No_proxy

1. Laden von Texten/Dokumenten1. Laden von Texten/Dokumenten

USER_DATASTORE- Wird benutzt, um zusätzliche

Informationen dem Text hinzuzufügen

- Attribut:• Procedure

1. Laden von Texten/Dokumenten1. Laden von Texten/Dokumenten

1.2 SQL – Insertanweisung- einfachste Möglichkeit: Anlegen und Füllen

einer Tabelle mit zwei SpaltenAnlegen der Tabelle:

CREATE TABLE tabellenname (id number primary key, text varchar2 (80));

Füllen der Tabelle:INSERT INTO tabellenname values (1, ‘Text Dokument 1’);INSERT INTO tabellenname values (2, ‘Text Dokument 2’);

1. Laden von Texten/Dokumenten1. Laden von Texten/Dokumenten

1.1 ctxload

- Laden von Texten- Thesaurus Import und Export- Dokument Update/Export

1. Laden von Texten/Dokumenten1. Laden von Texten/Dokumenten

Laden von Texten

- wird zum Laden von Texten aus einer Datei benutzt

- Text wird in eine LONG oder LONG RAW Spalte einer Tabelle gespeichert

- Bei Import unstrukturierter Daten muss entsprechendes Headerfile vorhanden sein

1. Laden von Texten/Dokumenten1. Laden von Texten/Dokumenten

Thesaurus Import und Export

- wird zum Laden von Thesaurusdaten aus einem ASCII File in die interMedia Text Thesaurus Tabelle benutzt

- Ctxload kann zum Importieren und Exportieren von Files benutzt werden

1. Laden von Texten/Dokumenten1. Laden von Texten/Dokumenten

Dokument Update/Export

- ctxload utility unterstützt:• Das Exportieren von Datenbankspalten

in Dateien• Das Aktualisieren von Datenbankspalten

aus Dateien

2. Indexieren und Indexwartung2. Indexieren und Indexwartung

2. Indexieren und Indexwartung2. Indexieren und Indexwartung

1. Filterobjekte2. Lexer Objekte3. Wortlistenobjekte (Wordlist

Objects)4. Speicherobjekte (Storage

Objects)

2. Indexieren und Indexwartung2. Indexieren und Indexwartung

2.1 Filterobjekte- sollen festlegen, wie Texte für

Indizierung gefiltert werden- Oracle speichert formatierte

Dokumente in Originalform- Benutzt Filter, um Text oder HTML –

Code zu erzeugen- Diese temporären Texte werden dann

von Oracle indiziert

2. Indexieren und Indexwartung2. Indexieren und Indexwartung

Verschiedene Filterobjekte:

- NULL_FILTER- INSO_FILTER- USER_FILTER- CHARSET_FILTER

2. Indexieren und Indexwartung2. Indexieren und Indexwartung

2.2 Lexer Objekte- Werden verwendet, um die

Sprache eines Textes festzustellen- Objekte:

• BASIC_LEXER• CHINESE_VGRAM_LEXER• JAPANESE_VGRAM_LEXER• KOREAN_LEXER

2. Indexieren und Indexwartung2. Indexieren und Indexwartung

BASIC_LEXER:

- Wird für Englisch und westeuropäische Sprachen verwendet

- Wird benutzt, um aus Texten einzelne Zeichen zu extrahieren

2. Indexieren und Indexwartung2. Indexieren und Indexwartung

BASIC_LEXER: (Attribute)• continuation• numgroup• numjoin• skipjoin• mixed_case• alternate_case

2. Indexieren und Indexwartung2. Indexieren und Indexwartung

2.3 Wortlistenobjekte (Wordlist Objects)- Werden verwendet, um erweiterte

Anfrageoperationen zu ermöglichen- Verwendetes Objekt: BASIC_WORDLIST- Die benutzte Sprache muss dabei mit

angeben werden- Sprachen: NULL, ENGLISH, DUTCH,

FRENCH, GERMAN, ITALIAN und SPANISH- Bei Angabe von NULL wird der Operator

"$" ignoriert

2. Indexieren und Indexwartung2. Indexieren und Indexwartung

Beispiele:- fuzzy_match: gibt an welche

Routinen eingesetzt werden- fuzzy_score: gibt das untere

Ergebnislimit an- fuzzy_numresults: gibt die max. zu

erwartete Anzahl der Anfrageergebnisse an

2. Indexieren und Indexwartung2. Indexieren und Indexwartung

2.4 Speicherobjekte (Storage Objects)

- gibt Einstellungsparameter und Tabellengröße einer Tabelle an

- Diese Tabellen sind mit einem Textindex verbunden

- Objekt: BASIC_STORAGE

2. Indexieren und Indexwartung2. Indexieren und Indexwartung

Beispiele:- i_table_clause: Indextabelle, bei

Tabellenerstellung- k_table_clause: Schlüsselworttabelle, bei

Tabellenerstellung- r_table_clause: rowid – Table, bei

Tabellenerstellung- n_table_clause: "negative list" – Tabelle,

bei Tabellenerstellung

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

1. Wort - Anfragen2. About – Anfragen 3. Gemischte Anfragen 4. Operator Prioritäten 5. Spezielle Zeichen in Anfragen

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

3.1 Wort – Anfragen- wird benutzt, wenn man nach einem

bestimmten Wort oder Wortgruppe sucht- Es werden die log. Operatoren AND und

OR, sowie strukturierte Prädikate benutzt- Es ist möglich mit count(*),

CTX_QUERY.COUNT oder CTX_QUERY.EXPLAIN die Trefferanzahl zu ermitteln

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

Beispiel: CTX_QUERY.COUNT_HITS- gibt Anzahl der Treffer zurück- 2 verschiedene Modi:

• Exact Mode• Estimate mode

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

Beispiel: CTX_QUERY.COUNT_HITS

COUNT_HITS(index_name IN VARCHAR2,text_query IN VARCHAR2,exact IN BOOLEAN DEFAULT TRUE) RETURN NUMBER;

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

3.2 About – Anfragen- zählen die Dokumente, die die

Kriterien der gestellten Anfrage erfüllen

- Themenkomponente des Indexes kann benutzt werden (nur in englischer Sprache möglich)

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

Beispiel: ABOUT (Text)

- Text kann einzelnes Wort, Wortgruppe, Satz oder Aneinanderreihung beliebiger Wörter sein

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

Beispiel: • Einzelnes Wort: 'about (dog)' • Wortgruppe: 'about (cats and dogs)'• beliebige Wörter: 'about (cat dog house)'

- es werden alle Dokumente zurückgegeben, die diese Wörter enthalten

- ein Dokument wird höher bewertet, wenn es alle Wörter enthält

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

3.3 Gemischte Anfragen- Vermischung beider Anfrageformen

(Wort – Anfrage, About – Anfrage) - Benutzung der Operatoren AND und OR- Beispiel:

ABOUT und WORT Anfrage’ about (Hunde) und Katze’

ABOUT Anfrage mit anderer ABOUT Anfrage

’ about (Hunde) not about (Dackel)

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

3.4 Operator Prioritäten- Komponenten einer Abfrage werden in

bestimmter Reihenfolge abgearbeitet- Reihenfolge wird von Priorität des

Operators bestimmt- Textanfrageoperatoren werden in

zwei verschiedene Gruppen eingeteilt

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

• EQUIVALENCE (=) • NEAR (;) • WEIGHT (*), threshold

(>) • MINUS (-) • NOT (~) • WITHIN • AND (&) • OR (|) • ACCUMULATE (,)

• Wildcard Characters

• ABOUT • STEM ($) • FUZZY (?) • SOUNDEX (!)

Gruppe 1: (Operatoren) Gruppe 2: (Operat. u. Zeichen)

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

- Aufzählreihenfolge entspricht der Priorität

- Höchste Priorität wird zuerst abgearbeitet

- Abarbeitung von links nach rechts

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

Anfrage Reihenfolge der Bearbeitung

w1 & w2| w3 (w1 & w2) | w3

w1 | w2 & w3 (w1) | (w2 & w3)

?w1, w2 | w3 & w4 (?w1), (w2 | (w3 & w4))

a = b & c = d (a=b) & (c=d)

dog and cat WITHIN body

dog and (cat WITHIN body)

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

3.4 Spezielle Zeichen in Anfragen

• Wildcard Zeichen • Gruppierende Zeichen • Escape Zeichen

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

- Wildcard Zeichen% an dieser Stelle kann ein beliebiges anderes Zeichen stehen (auch mehrmals)

Bsp.: 'haus%' – Findet alle Wörter, die mit Haus beginnen _ an dieser Stelle kann irgendein einzelnes Zeichen stehenBsp.: '_ing' - Findet alle Wörter, die auf ing enden, aber

nur mit 4 Buchstaben geschrieben werden.

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

- Gruppierende Zeichen() runde Klammern dienen zum Gruppieren von Operatoren und Termen

 

[] dienen auch zum Gruppieren, wie die runden Klammern, aber verhindern das Eindringen von Expansionsoperatoren (z.B. FUZZY oder STEM)

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

- Escape Zeichen{} Kennzeichnung eines Strings aus Zeichen und Symbolen als Escape – Sequenz Bsp.: 'AT\&T' oder '{AT&T}'

\ Kennzeichnung eines einzelnen Zeichens als Escape – Sequenz Bsp.: 'high\-voltage' oder '{high-voltage}'

4. Highlighting und Präsentation 4. Highlighting und Präsentation von Ergebnisdokumentenvon Ergebnisdokumenten

4. Highlighting und Präsentation von Ergebnisdokumenten4. Highlighting und Präsentation von Ergebnisdokumenten

- Für Benutzer interessant, in welchen Dokumenten sich die Treffer befinden

- Günstig: Einsicht in die gefundenen Dokumente

Nach gestellter Anfrage werden dem Benutzer alle Dokumente angezeigt, die die Anfrage erfüllen. Benutzer wählt dann das anzuzeigende Dokument aus.

4. Highlighting und Präsentation von Ergebnisdokumenten4. Highlighting und Präsentation von Ergebnisdokumenten

- Mit Hilfe von interMedia Text können gefundene Texte unterschiedlich dargestellt werden

- Z.B.: Unterstreichung der Suchwörter

4. Highlighting und Präsentation von Ergebnisdokumenten4. Highlighting und Präsentation von Ergebnisdokumenten

- Beispiel: CTX_DOC.FILTER

Syntax: CTX_DOC.FILTER(

index_name IN VARCHAR2,textkey IN VARCHAR2,restab IN VARCHAR2,query_id IN VARCHAR2 DEFAULT 0,plaintext IN BOOLEAN DEFAULT FALSE);

4. Highlighting und Präsentation von Ergebnisdokumenten4. Highlighting und Präsentation von Ergebnisdokumenten

- Beispiel: CTX_DOC.MARKUP

Syntax: CTX_DOC.MARKUP(index_name IN VARCHAR2, textkey IN VARCHAR2, text_query IN VARCHAR2, restab IN VARCHAR2,query_id IN VARCHAR2 DEFAULT 0, plaintext IN BOOLEAN DEFAULT FALSE, tagset IN VARCHAR2 DEFAULT 'TEXT_DEFAULT', starttag IN VARCHAR2 DEFAULT NULL,endtag IN VARCHAR2 DEFAULT NULL, prevtag IN VARCHAR2 DEFAULT NULL, nexttag IN VARCHAR2 DEFAULT NULL);

5. Vergleich Oracle interMedia Text 5. Vergleich Oracle interMedia Text mit SQL/MM Full Textmit SQL/MM Full Text

5. Vergleich Oracle interMedia Text mit SQL/MM Full Text5. Vergleich Oracle interMedia Text mit SQL/MM Full Text

- "normale" Suchanfragen mit 'like' nicht mehr leistungsfähig genug

Oracle interMedia Text unterstützt neue Suchmechanismen

- Diese neuen Suchmechanismen sind im Standard von Orcale interMedia Text vorgesehen

5. Vergleich Oracle interMedia Text mit SQL/MM Full Text5. Vergleich Oracle interMedia Text mit SQL/MM Full Text

- Neue strukturelle Einheiten- Neue Operationen- neue Anfrage- und

Bearbeitungsmöglichkeiten

5. Vergleich Oracle interMedia Text mit SQL/MM Full Text5. Vergleich Oracle interMedia Text mit SQL/MM Full Text

- Neue strukturelle Einheiten:

• Wörter• Sätze• Abschnitte

5. Vergleich Oracle interMedia Text mit SQL/MM Full Text5. Vergleich Oracle interMedia Text mit SQL/MM Full Text

- Neue Operationen:

• "Boolean Search" • "Ranking" • "Conceptual Search"

5. Vergleich Oracle interMedia Text mit SQL/MM Full Text5. Vergleich Oracle interMedia Text mit SQL/MM Full Text

- Neue Anfrage- und Bearbeitungsmöglichkeiten :

• Einzelwortsuche • Suche von Phrasen • inhaltsbasierte Suche • Stopwort Verarbeitung • Filtermöglichkeiten • erweiterte Suche

5. Vergleich Oracle interMedia Text mit SQL/MM Full Text5. Vergleich Oracle interMedia Text mit SQL/MM Full Text

- Beispiel: "Conceptual Search" o        Standard

SELECT *FROM myDocsWHERE 1 = CONTAINS (Textbody, 'IS

ABOUT "every text …"'); o o        Oracle

SELECT SCORE(1) titleFROM newsWHERE CONTAINS (text,

'about(politics)', 1) > 0;

5. Vergleich Oracle interMedia Text mit SQL/MM Full Text5. Vergleich Oracle interMedia Text mit SQL/MM Full Text

- Beispiel: Suche von Phrasen o        Standard

SELECT *FROM myDocsWHERE 1 = CONTAINS (TextBody,

'"specific language"');  o        Oracle

SELECT employee_name, SCORE(1) FROM employee_databaseWHERE CONTAINS (emp.resume,

'software developer') > 0;

Recommended