Date post: | 05-Apr-2015 |
Category: |
Documents |
Upload: | jutte-altheide |
View: | 110 times |
Download: | 3 times |
Text-Retrieval mit Oracle
Vortrag vonAndreas Mück & David Diestel
Oracle 8i interMedia
• “... a product designed to manage multimedia Web content within Oracle 8i.”
• Das Programmpacket unterteilt in drei Bereiche.
Gliederung von Oracle 8i interMedia
Oracle 8i interMedia
Oracle 8i interMedia
Text
Oracle 8i interMedia
Audio, Image,
and Video
Oracle 8i interMedia
Locator
Oracle 8i interMedia Text
• versteht sich als Werkzeug zur Erstellung von Applikationen zur Anfrage auf Texte
• bietet Möglichkeiten– zur Suche in – zum Retrieval auf– zur Ansicht von
Textdokumenten
Oracle 8i interMedia Text(2)
• zusätzlich für englischsprachige Dokumente– Begriffssuche– Themenanalyse
• verwendet Standard-SQL und PL/SQL
Erstellung einer Querry Application
4 Schritte• Laden der Dokumente• Indexieren der Dokumente• Suchanfragen stellen• gefundene Dokumente
präsentieren
Laden von Dokumenten
• System erwartet, daß Dokumente in eine Textspalte geladen werden
• Spaltentypen:– VARCHAR2– CLOB– BLOB– CHAR– BFILE
Laden von Dokumenten (2)
• LONG & LONG RAW für DB-Upgrade Oracle7 auf Oracle8
• auch Speichern von Dokumenten im lokalen Dateisystem oder Inter-/Intranet u.a. möglich– Eintrag von Dateipfaden oder URLs in
die Tabelle
Laden von Dokumenten (3)
• Unterstützung fast aller Dokumentformate
• Laden von Dokumenten unter Verwendung des SQL INSERT Statements
Beipiel:
CREATE TABLE docs (id number primary key, text varchar2(80));
– erzeugt Tabelle mit 2 Spalten: id und text
Tabelle füllen mit INSERT:insert into docs values(1, 'this is the text of the first document');
insert into docs values(12, 'this is the text of the second document');
Laden von Dokumenten (4)
• Laden von Dokumenten aus dem Dateisystem mit– SQL*Loader– ctxload executable – DBMS_LOB.LOADFROMFILE() PL/SQL
procedure to load LOBs from BFILEs– Oracle Call Interface
Indexierung
• Indexierung erfolgt auf der Dokumentenspalte
• spezieller Indextyp: ctxsys.context
• Tabelle muß PK besitzen (Doc-ID!?)• Beispiel:
create index myindex on docs(text) indextype is ctxsys.context;
Indexierung (2)
• Erzeugen des Index mit CREATE INDEX, Bearbeiten mit ALTER INDEX
• Definition von Parametern mit– CTX_DDL.CREATE_PREFERENCE– CTX_DDL.SET_ATTRIBUTE – CTX_DDL.CREATE_STOPLIST– CTX_DDL.CREATE_SECTION_GROUP
Indexierung (3)
• Datastore: Wie/Wo sind die Dokumente gespeichert?
• Filter: Welche(s) „Importformat(e)“?• Lexer: Sprachauswahl für
TermextraktionVielsprachigkeit möglich
• Wordlist: Einstellungen für Stemming, Fuzzy & Substring-Index
Indexierung (4)
• Storage: Parameter für die Indexspeicherung z.B. tablespace
• Stop List: Stopwortliste• Section Group: Definition von Sektionen
bzw. wie diese erkannt werden, benötigt für WITHIN Anfragen
Anfragen
• SQL-, PL/SQL-Anfragen• Verwendung des CONTAINS-
Operators z.B.:SELECT SCORE(1), title from newsindex
WHERE CONTAINS(text, 'oracle', 1) > 0;
Anfragen(2)
• Mögliche Operatoren– Word-Querys– Boolsche Verknüpfung– Near-Operator– beliebige Wildcards– WITHIN– ABOUT-Querys (Themensuche)– Thesaurus
Ranking
• „inverse Termfrequenz“: Termfrequenz/Dokumentfrequenz
• Berechnet durch SCORE-Operator
Erzeugung der Ausgabe
• Ausgabe des Dokuments in HTML/Text
• Highlighting möglich