Bulik

Werbung
Textdatenbanken
Jana Bulik 98I
15. November 2001
Textdatenbanken - Überblick
1.
2.
3.
4.
5.
Laden von Texten / Dokumenten
Indexieren und Indexwartung
Anfragen und Anfrageoperatoren
Highlighting und Präsentation von
Ergebnisdokumenten
Vergleich Oracle InterMedia Text mit
SQL/MM Full Text
1. Laden von Texten/Dokumenten
1. Laden von Texten/Dokumenten
1.
2.
3.
Datastored Objekte
SQL – Insertanweisung
ctxload
1. Laden von Texten/Dokumenten
1.1 Datastored Objekte
- DIRECT_DATASTORE
- DETAIL_DATASTORE
- FILE_DATASTORE
- URL_DATASTORE
- USER_DATASTORE
1. 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/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/Dokumenten
FILE_DATASTORE
Datenspeicherung extern in den Daten
des Betriebssystems
Path – Attribut gibt an, wo externes
Textfile gespeichert ist
1. 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/Dokumenten
USER_DATASTORE
Wird benutzt, um zusätzliche
Informationen dem Text hinzuzufügen
Attribut:
•
Procedure
1. Laden von Texten/Dokumenten
1.2 SQL – Insertanweisung
-
einfachste Möglichkeit: Anlegen und Füllen einer
Tabelle mit zwei Spalten
Anlegen 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/Dokumenten
1.1 ctxload
- Laden von Texten
- Thesaurus Import und Export
- Dokument Update/Export
1. 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/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/Dokumenten
Dokument Update/Export
-
ctxload utility unterstützt:
•
•
Das Exportieren von Datenbankspalten in
Dateien
Das Aktualisieren von Datenbankspalten aus
Dateien
2. Indexieren und Indexwartung
2. Indexieren und Indexwartung
1.
2.
3.
4.
Filterobjekte
Lexer Objekte
Wortlistenobjekte (Wordlist Objects)
Speicherobjekte (Storage Objects)
2. 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 Indexwartung
Verschiedene Filterobjekte:
-
-
NULL_FILTER
INSO_FILTER
USER_FILTER
CHARSET_FILTER
2. 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 Indexwartung
BASIC_LEXER:
-
Wird für Englisch und westeuropäische
Sprachen verwendet
Wird benutzt, um aus Texten einzelne
Zeichen zu extrahieren
2. Indexieren und Indexwartung
BASIC_LEXER: (Attribute)
•
continuation
•
numgroup
•
numjoin
•
skipjoin
•
mixed_case
•
alternate_case
2. 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 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 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 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 Anfrageoperatoren
3. Anfragen und Anfrageoperatoren
1.
2.
3.
4.
5.
Wort - Anfragen
About – Anfragen
Gemischte Anfragen
Operator Prioritäten
Spezielle Zeichen in Anfragen
3. 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 Anfrageoperatoren
Beispiel: CTX_QUERY.COUNT_HITS
gibt Anzahl der Treffer zurück
2 verschiedene Modi:
•
•
Exact Mode
Estimate mode
3. 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 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 Anfrageoperatoren
Beispiel:
ABOUT (Text)
-
Text kann einzelnes Wort,
Wortgruppe, Satz oder
Aneinanderreihung beliebiger Wörter
sein
3. Anfragen und Anfrageoperatoren
Beispiel:
•
•
•
-
Einzelnes Wort:
Wortgruppe:
beliebige Wörter:
'about (dog)'
'about (cats and dogs)'
'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 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 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 Anfrageoperatoren
Gruppe 1: (Operatoren)
•
•
•
•
•
•
•
•
•
Gruppe 2: (Operat. u. Zeichen)
EQUIVALENCE (=)
NEAR (;)
WEIGHT (*), threshold (>)
MINUS (-)
NOT (~)
WITHIN
AND (&)
OR (|)
ACCUMULATE (,)
•
•
•
•
•
Wildcard Characters
ABOUT
STEM ($)
FUZZY (?)
SOUNDEX (!)
3. Anfragen und Anfrageoperatoren
-
Aufzählreihenfolge entspricht der
Priorität
Höchste Priorität wird zuerst
abgearbeitet
Abarbeitung von links nach rechts
3. Anfragen und Anfrageoperatoren
Anfrage
w1 & w2| w3
Reihenfolge der
Bearbeitung
(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 Anfrageoperatoren
3.4 Spezielle Zeichen in Anfragen
•
•
•
Wildcard Zeichen
Gruppierende Zeichen
Escape Zeichen
3. 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 stehen
Bsp.: '_ing' - Findet alle Wörter, die auf ing enden, aber nur
mit 4 Buchstaben geschrieben werden.
3. 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 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
von Ergebnisdokumenten
4. 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 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 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 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
mit SQL/MM Full Text
5. 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 Text
-
Neue strukturelle Einheiten
Neue Operationen
neue Anfrage- und
Bearbeitungsmöglichkeiten
5. 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 Text
-
Neue Operationen:
•
•
•
"Boolean Search"
"Ranking"
"Conceptual Search"
5. 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 Text
-
o
Beispiel: "Conceptual Search"
o
Standard
SELECT *
FROM myDocs
WHERE 1 = CONTAINS (Textbody, 'IS ABOUT
"every text …"');
o
Oracle
SELECT SCORE(1) title
FROM news
WHERE CONTAINS (text, 'about(politics)', 1) > 0;
5. Vergleich Oracle interMedia Text mit SQL/MM Full Text
-
Beispiel: Suche von Phrasen
o
o
Standard
SELECT *
FROM myDocs
WHERE 1 = CONTAINS (TextBody, '"specific
language"');
Oracle
SELECT employee_name, SCORE(1)
FROM employee_database
WHERE CONTAINS (emp.resume, 'software
developer') > 0;
Herunterladen