56
Textdatenbanken Textdatenbanken Jana Bulik 98I 15. November 2001

Textdatenbanken Jana Bulik 98I 15. November 2001

Embed Size (px)

Citation preview

Page 1: Textdatenbanken Jana Bulik 98I 15. November 2001

TextdatenbankenTextdatenbanken

Jana Bulik 98I

15. November 2001

Page 2: Textdatenbanken 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

Page 3: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 4: Textdatenbanken Jana Bulik 98I 15. November 2001

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

1. Datastored Objekte2. SQL – Insertanweisung3. ctxload

Page 5: Textdatenbanken Jana Bulik 98I 15. November 2001

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

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

Page 6: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 7: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 8: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 9: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 10: Textdatenbanken Jana Bulik 98I 15. November 2001

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

USER_DATASTORE- Wird benutzt, um zusätzliche

Informationen dem Text hinzuzufügen

- Attribut:• Procedure

Page 11: Textdatenbanken Jana Bulik 98I 15. November 2001

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’);

Page 12: Textdatenbanken Jana Bulik 98I 15. November 2001

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

1.1 ctxload

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

Page 13: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 14: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 15: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 16: Textdatenbanken Jana Bulik 98I 15. November 2001

2. Indexieren und Indexwartung2. Indexieren und Indexwartung

Page 17: Textdatenbanken Jana Bulik 98I 15. November 2001

2. Indexieren und Indexwartung2. Indexieren und Indexwartung

1. Filterobjekte2. Lexer Objekte3. Wortlistenobjekte (Wordlist

Objects)4. Speicherobjekte (Storage

Objects)

Page 18: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 19: Textdatenbanken Jana Bulik 98I 15. November 2001

2. Indexieren und Indexwartung2. Indexieren und Indexwartung

Verschiedene Filterobjekte:

- NULL_FILTER- INSO_FILTER- USER_FILTER- CHARSET_FILTER

Page 20: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 21: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 22: Textdatenbanken Jana Bulik 98I 15. November 2001

2. Indexieren und Indexwartung2. Indexieren und Indexwartung

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

Page 23: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 24: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 25: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 26: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 27: Textdatenbanken Jana Bulik 98I 15. November 2001

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

Page 28: Textdatenbanken Jana Bulik 98I 15. November 2001

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

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

Page 29: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 30: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 31: Textdatenbanken Jana Bulik 98I 15. November 2001

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;

Page 32: Textdatenbanken Jana Bulik 98I 15. November 2001

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)

Page 33: Textdatenbanken Jana Bulik 98I 15. November 2001

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

Beispiel: ABOUT (Text)

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

Page 34: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 35: Textdatenbanken Jana Bulik 98I 15. November 2001

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)

Page 36: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 37: Textdatenbanken Jana Bulik 98I 15. November 2001

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)

Page 38: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 39: Textdatenbanken Jana Bulik 98I 15. November 2001

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)

Page 40: Textdatenbanken Jana Bulik 98I 15. November 2001

3. Anfragen und Anfrageoperatoren3. Anfragen und Anfrageoperatoren

3.4 Spezielle Zeichen in Anfragen

• Wildcard Zeichen • Gruppierende Zeichen • Escape Zeichen

Page 41: Textdatenbanken Jana Bulik 98I 15. November 2001

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.

Page 42: Textdatenbanken Jana Bulik 98I 15. November 2001

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)

Page 43: Textdatenbanken Jana Bulik 98I 15. November 2001

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}'

Page 44: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 45: Textdatenbanken Jana Bulik 98I 15. November 2001

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.

Page 46: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 47: Textdatenbanken Jana Bulik 98I 15. November 2001

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);

Page 48: Textdatenbanken Jana Bulik 98I 15. November 2001

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);

Page 49: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 50: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 51: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 52: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 53: Textdatenbanken Jana Bulik 98I 15. November 2001

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"

Page 54: Textdatenbanken Jana Bulik 98I 15. November 2001

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

Page 55: Textdatenbanken Jana Bulik 98I 15. November 2001

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;

Page 56: Textdatenbanken Jana Bulik 98I 15. November 2001

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;