Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer...

71
Text Datenbanken Text Datenbanken Oracle Oracle 8i 8i inter inter Media Text Media Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken und stellt diese anhand Oracle8i interMedia Text vor. Verfahren und Funktionsweisen werden kurz in Form von erläuternden Beispielen gezeigt. Besonderes Augenmerk liegt auf dem Laden von Texten, deren Indizierung, dem stellen von Anfragen sowie die Präsentation von Ergebnisdokumenten. Ein Vergleich mit SQL/MM Full Text schließt das Dokument ab.

Transcript of Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer...

Page 1: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Text DatenbankenText Datenbanken

OracleOracle8i8i interinterMedia Text Media Text

Version:

30.10.2000

Autoren:

Bent Großmann

Niels Bauer

Zusammenfassung:

Dieses Dokument befaßt sich mit Volltextdatenbanken und stellt diese anhand

Oracle8i interMedia Text vor. Verfahren und Funktionsweisen werden kurz

in Form von erläuternden Beispielen gezeigt.

Besonderes Augenmerk liegt auf dem Laden von Texten, deren Indizierung,

dem stellen von Anfragen sowie die Präsentation von Ergebnisdokumenten.

Ein Vergleich mit SQL/MM Full Text schließt das Dokument ab.

Page 2: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Oracle8i interMedia Text Einführung

1.0 Einführung1.0 Einführung

• Oracle interMedia Text ist Bestandteil von Oracle interMedia

und wird mit Version 8i der Oracle Datenbank ausgeliefert.

Oracle8i interMedia Text erlaubt es unstrukturierte Daten

(Texte) zu verwalten, indizieren und danach zu suchen.

• Die Freitextsuche erlaubt es Dokumente innerhalb und

außerhalb der Oracle8i Datenbank zu durchsuchen. Es

ermöglicht content-based query’s, d.h. das finden von

Dokumenten oder Texten die ein bestimmtes Wort enthalten.

Page 3: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

1.1 1.1 Ein kurzes BeispielEin kurzes Beispiel

create table docs (id number primary key, text varchar2( 80 ) );

insert into docs values ( 1, ‚erstes Dokument‘ ) ;

insert into docs values ( 2, ‚zweites Dokument‘ ) ; commit ;

create

index doc_index on docs ( text ) indextype is

ctxsys.context; select id from

docs where constains

( text , ‚first‘ ) > 0 ;

• Es werden alle Zeilen , in denen die Text-spalte, das Wort “first” enthält gefunden.

Der Ausdruck “ > 0 “ ist notwendig um ein erlaubtes Oracle SQL Kommando zu

benutzen, da boolsche Werte im Moment nicht unterstützt werden.

Oracle8i interMedia Text Einführung

Page 4: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

1.2 1.2 Wichtige Änderungen im Vergleich mit Wichtige Änderungen im Vergleich mit Oracle ConTex 2.xOracle ConTex 2.x

• Sämtliche Funktionalitäten sind schon im Kernel enthalten und laufen somit nicht mehr als

• Daemon wie dies in älteren Versionen der Fall war. Dies erhöht die Performance und erleichtert die Entwicklung deutlich.

• Viele ConText Kommandos änderten sich von PL/SQL zu Standard SQL .

• Das Query – Model wurde vereinfacht und besteht normalerweise nur noch aus single-step-query’s

• Two-step-query’s werden in Oracle 8i nicht mehr unterstützt und In-memory-query’s werden durch einfache SQL-cursors ersetzt.

• Index Statements wechselten von PL/SQL zu normalen SQL

Oracle8i interMedia Text Einführung

Page 5: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

1.31.3 System definierte RollenSystem definierte Rollen

• CTXSYS Rolle

Die CTXSYS Rolle ermöglicht dem Benutzer das starten des CTXSRV Servers. Weiterhin kann er alle ausführen aller Tätigkeiten eines CTXAPP Benutzers ausführen.

• CTXAPP Rolle

Mit der CTXAPP Rolle kann der Benutzer Indexe erstellen, das

Textdaten Wörterbuch verwalten sowie Präferenzen einbinden,

angelegen und löschen. Das benutzen von Anfragen (Text

queries ) ist genauso möglich wie auch die Benutzung der

interMedia Text PL/SQL Funktionalitäten.

Oracle8i interMedia Text Einführung

Page 6: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

1.4 1.4 Laden von Dokumenten / gültige DatenformateLaden von Dokumenten / gültige Datenformate

• Die Standardeinstellung erwartet das Dokumente in eine Textfeld geladen werden, aber das einbinden des Dateisystems bzw. das Einbinden von URL ’s ist möglich.

• Es gibt verschiedene Varianten zum laden von Daten SQL INSERT Anweisung ctxload executable SQL*Loader DBMS_LOB.LOADFROMFILE() PL/SQL ( Prozedur zum laden

von LOBs aus BFILE’s )

• Textfelder können verschiedene Datentypen wie VARCHAR2, CLOB, BLOB, CHAR oder BFILE haben.

• Als Dokumentenformate sind HTML, PDF, Microsoft Word sowie plain Text möglich.

Oracle8i interMedia Text Einführung

Page 7: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

1.5 Indexe erstellen1.5 Indexe erstellen

• Wenn der Text in eine Textspalte geladen wurde kann damit begonnen werden eine Index zu erstellen. Hier ein kurzes Beispiel:

• Hier ein Beispiel:

create index myindex on docs(text)

indextype is ctxsys.context;

• Beim erstellen von Indexen gilt es die Besonderheiten der verschiedenen Sprachen zu beachtet.

Oracle8i interMedia Text Einführung

Page 8: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

1.5 Indexe erstellen1.5 Indexe erstellen

Generelle Einstellungen für alle Sprachen

• die Datentypen NCLOB, DATE und NUMBER können nicht indiziert werden

• Zum indizieren von verschiedenen Dokumenten ist es nötig das der im System vorhandene Inso-Filter richtig eingerichtet wurde.

• Es wird die im System angegebene Sprache zum indizieren verwendet

• Die default Stop-List für die im System angegebene Sprache wird verwendet

• fuzzy und stemming anfragen werden unterstützt wenn diese für ihre Sprache vorhanden sind.

Oracle8i interMedia Text Einführung

Page 9: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

1.5 Indexe erstellen1.5 Indexe erstellen

Sprachen spezifische Einstellungen

• Englisch Themen Informationen sind möglich und damit auch ABOUT Anfragen. Diese werden

dadurch präziser.

• Deutsch Case-sensitives IndizierenComposite IndexingAlternate spelling

• Holländisch Composite IndexingAlternate spelling

• Schwedisch Alternate spelling

Oracle8i interMedia Text Einführung

Page 10: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

1.5 Indexe erstellen1.5 Indexe erstellen

Sprachen spezifische Einstellungen

• Eine Indexwartung ist nach dem Einfügen,Update oder dem

löschen von Sätzen notwendig ,dazu wird INDEX ALTER

verwendet.

• Der im Hintergrund laufende ctxsrv server synchronisiert den

Index in festen Intervallen automatisch.

Oracle8i interMedia Text Einführung

Page 11: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

1.6 Anfragen1.6 Anfragen

Es werden grundsätzlich zwei Arten von Anfragen unterschieden, word query’s und about-query’s.

• Word-Anfragen

Eine word-query ist eine von einfachen Hochkommas eingeschlossenen Anfrage, nach einem bestimmten Wort oder einer Phrase

SELECT SCORE(1) title from news

WHERE CONTAINS ( text , ‚oracle‘ , 1) > 1

Es können AND , OR Operatoren sowie strukturierte Prädikate benutzt werden

Oracle8i interMedia Text Einführung

Page 12: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

1.6 Anfragen1.6 Anfragen

• About-Anfragen

In allen Sprachen zählen ABOUT Anfragen die Anzahl von relevanten Dokumenten welche die Kriterien einer gestellten Anfrage erfüllen. In englischer Sprache ist es möglich die Themen-Komponente des Index zu benutzen. Diese wird automatisch erstellt und erlaubt es Dokumente zu finden die konzeptionell mit der gestellten Anfrage beschäftigen.

SELECT SCORE(1) title from news

WHERE CONTAINS(text, about(politics)‘ ,1) > 0;

Diese Anfrage findet alle Dokumente die von ‚politics‘ handeln, also nicht nur das Wort enthalten.

Oracle8i interMedia Text Einführung

Page 13: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

1.7 Dokumentenpräsentation1.7 Dokumentenpräsentation

Normalerweise werden die Resultate einer Anfrage dem Benutzer angezeigt. Der Benutzer wählt einen Eintrag aus und die Anwendungsumgebung wird das Dokument präsentieren.

Mit interMediaText bestehen zwei unterschiedliche Wege

Es besteht die Möglichkeit ein Dokument mit hervorgehobenen Begriffen anzuzeigen. Dabei sind die Terme der gestellten Anfrage hervorgehoben.

Solche Terme können die Wörter der Anfrage oder die Terme einer ABOUT-Anfrage sein.

Dabei werden für verschiedene Dokumentenformate unterschiedliche Prozeduren verwendet.

Oracle8i interMedia Text Einführung

Page 14: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

1.7 Dokumentenpräsentation1.7 Dokumentenpräsentation• Textausgabetypen

Textausgabetyp Procedure

Hervorgehoben Plaintext CTX_DOC.MARKUP

Hervorgehoben HTML_Version CTX_DOC.MARKUP

Hervorgehoben offset Info. Plaintext CTX_DOC.HIGHLIGHT

Hervorgehoben offset Info. HTML CTX_DOC.HIGHLIGHT

Plain text CTX_DOC.FILTER

HTML CTX_DOC.FILTER

Oracle8i interMedia Text Einführung

Page 15: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

1.8 1.8 SQL-KommandosSQL-Kommandos

ALTER INDEXALTER INDEX

wird verwendet um folgende Aufgaben zu realisieren

Umbenennen eines Index

Neuaufbau des Index mit anderen Einstellungen

Weiterführen eine fehlgeschlagenen Indexoperation

Durchführen von Indexwartung ( DML )

Indexoptimierung

Hinzufügen von Stopwörtern zum Index

ALTER INDEX [ schema.]index_name RENAME to new_index_name;

ALTER INDEX [ schema.]index REBUILD [online] [parameters ( paramstring)];

Oracle8i interMedia Text Einführung

Page 16: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

DROP INDEXDROP INDEX

wird benutzt um einen Index zu verwerfen

Syntax : drop index [ schema.] index [force];

[force]

benutzen falls eine Indexoperation hängen geblieben ist

Beispiel drop index doc_index;

Oracle8i interMedia Text Einführung

Page 17: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

CONTAINSCONTAINS

Stellt den Enthält Operator dar.

Syntax: CONTAINS([ schema.] column, text_query VARCHAR2,[label NUMBER])

RETURN NUMBER;

[schema.]column Gibt die Textspalte an in der gesucht wird.

Diese Spalte muß einen Index haben

text_query Der zusuchende Text

Beispiel: SELECT SCORE(1) title from newsindex

WHERE CONTAINS(text, ’oracle’, 1) > 0;

Oracle8i interMedia Text Einführung

Page 18: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

CREATE INDEX CREATE INDEX

Dient zum anlegen eines interMediaText index.

Syntax: CREATE INDEX [ schema.] index on [ schema.] table(column) INDEXTYPE IS ctxsys.context

[PARAMETERS(paramstring)];

[schema.]index Gibt den Namen des zu indizierenden Textes an

[schema.]table(column) Name der Tabelle und er Spalte die zu indizieren sind.

Beispiele:create index newsindex on mytable(news)indextype is ctxsys.context;

create index newsindex on mytable(news) indextype is ctxsys.context parameters(’lexer MY_LEXER stoplist MY_STOP’);

Oracle8i interMedia Text Einführung

Page 19: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

SCORESCORE

Der score Operator in einem select Klausel gibt die Werte zurück die von einem CONTAINS Operator erzeugt werden

Syntax: SCORE(label NUMBER)

(Label NUMBER ) Spezifiziert eine Zahl um die Score- Prozedur in einer Anfrage zu

identifizieren.

Beispiel:

SELECT employee_name, SCORE(10), SCORE(20)

FROM employee_database

WHERE CONTAINS (emp.resume, ’software developer’, 10) > 0 OR

CONTAINS (emp.resume, ’java’, 20) > 0

ORDER BY NVL(SCORE(10),0), NVL(SCORE(20),0);

Oracle8i interMedia Text Einführung

Page 20: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Text Datenbanken

Oracle8i interMedia Text

Kapitel 2

Laden von Dokumenten

Page 21: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

2. Laden von Dokumenten2. Laden von Dokumenten

Die Default - Einstellung erwartet das Dokumente

direkt in einem Textfeld gespeichert werden.

Das einbinden des Dateisystems bzw. das Einbinden

von URL’s ist möglich.

Dies geschieht durch Verwendung von Datastore ObjektsDatastore Objekts..

Oracle8i interMedia Text Laden von Dokumenten

Page 22: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

2.1 Datastored Objects2.1 Datastored Objects

Datastore Objekte legen fest, wie Text gespeichert wird

DIRECT_DATASTORE und DETAIL_DATASTORE:Die Daten werden intern in einer Text - Spalte gespeichert.

FILE_DATASTORE

Die Daten werden extern in Dateien des Betriebssystems gespeichert. In der Textspalte steht der Dateiname

URL_DATASTORE

Die Daten werden extern im Internet / Intranet gespeichert.

Jede URL kann in einem extra Textfeld gespeichert werden.

Oracle8i interMedia Text Laden von Dokumenten

Page 23: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

2.2 Die SQL –Insert Anweisung2.2 Die SQL –Insert Anweisung

Ein einfacher Weg Daten zu laden besteht darin eine Tabelle mit zwei Spalten ( id, text ) anzulegen und diese dann mit dem insert Kommando zu füllen.

Beispiel:

Create table docs ( id number primary key , text varchar2 ( 80 ) );

Insert into docs values ( 1 , ' this is the text in the first dokument ‘ );

Insert into docs values ( 2 , ' this isthe text in the second dokument ‘ );

Oracle8i interMedia Text Laden von Dokumenten

Page 24: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

2.3 SQL – Loader

Das folgende Beispiel lädt Dateien mit verschieden Formaten in eine Tabelle mit eine Textspalte von Typ BLOB.

Anlegen der Tabelle:

CREATE TABLE articles_formatted

(

ARTICLE_ID NUMBER PRIMARY KEY ,

AUTHOR VARCHAR2(30),

FORMAT VARCHAR2(30),

PUB_DATE DATE,

TITLE VARCHAR2(256),

TEXT BLOB

);

Oracle8i interMedia Text Laden von Dokumenten

Page 25: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Lesen des Kontrollfiles

sqlldr userid=demo/demo control=loader1.dat log=loader.log

Inhalt des Kontrollfiles:

INFILE 'loader2.dat'

INTO TABLE articles_formatted

APPEND

FIELDS TERMINATED BY ','

(article_id SEQUENCE (MAX,1),

author CHAR(30),

format,

pub_date SYSDATE,

title,

ext_fname FILLER CHAR(80),

text LOBFILE(ext_fname) TERMINATED BY EOF)

Oracle8i interMedia Text Laden von Dokumenten

Page 26: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Beispiel LOADER2.DAT

Ben Kanobi, plaintext,Kawasaki news article,../sample_docs/kawasaki.txt,

Joe Bloggs, plaintext,Java plug-in,../sample_docs/javaplugin.txt,

John Hancock, plaintext,Declaration of Independence,../sam_doc/ind.txt,

M. S. Developer, Word7,Newsletter exam,../sam_docs/newsletter.doc,

M. S. Developer, Word7,Resume exam,../sam_docs/resume.doc,

X. L. Developer, Excel7,Common exam,../sam_docs/common.xls,

Oracle8i interMedia Text Laden von Dokumenten

Page 27: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

2.4 ctxload2.4 ctxload

ctxload stellt folgende Operationen zur Verfügung:

Laden von Texten

Dokument Update / Export

Thesaurus Import und Export

Oracle8i interMedia Text Laden von Dokumenten

Page 28: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Thesaurus Import und ExportThesaurus Import und Export

Benutzt ctxload zum laden von Thesaurusdaten aus einem File in die iMT Thesaurus Tabelle.

Als Importfile dient ein ASCII File das Einträge für Synonyms, broader Terme , narrower Terme, or related Terme welche zum erweitern von Anfragen benutzt werden können. ctxload kann auch zum exportieren eines Thesaurus durch Ausgabe des Inhaltes in eine Datei verwendet werden.

Thesaurus Import ctxload -user jsmith/123abc -thes -name tech_doc -file tech_thesaurus.txt

Thesaurus Export ctxload -user jsmith/123abc -thesdump -name tech_doc -file

tech_thesaurus.out

Oracle8i interMedia Text Laden von Dokumenten

Page 29: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Laden von TextLaden von Text

ctxload kann auch zum laden eines Textes aus einer Datei in eine LONG or LONG RAW Spalte einer Tabelle benutzt werden.

Als Importfile dient ein ASCII File welches den Text enthält. Für strukturierte Daten muß ein File mit den entsprechenden Headerdaten vorhanden sein.

Dokument Update / ExportDokument Update / Export

Das ctxload utility unterstützt das aktualisieren von aus Dateien

Sowie das exportieren von LONG RAW, LONG, BLOB und CLOB Spalten in Dateien.

Oracle8i interMedia Text Laden von Dokumenten

Page 30: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Update eines einzelnen Text FeldesUpdate eines einzelnen Text Feldes

Das folgende Beispiel aktualisiert ein einzelnes Textfeld , welches durch einen Primärschlüsselwert = 1 gekennzeichnet ist mit dem Inhalt der Datei myfile. Der Index myindex zeigt die Textspalte an.

ctxload -user scott/tiger -update -name myindex -file myfile -pk 1

oder , wenn der Primärschlüssel nicht numerisch ist …

ctxload -user scott/tiger -update -name myindex -file myfile -pk "Oracle,1"

Oracle8i interMedia Text Laden von Dokumenten

Page 31: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

2.6 Unterstützte Filterformate – Inso Filter

Dieser Filter ermöglicht das indizieren der meisten Formate.

Weiterhin ist das konvertieren z.B. in HTML möglich.

Generische Formate

ASCII Text (7 &8bit versions) Alle Versionen

ANSI Text (7 & 8 bit) Alle Versionen

Unicode Text Alle Versionen

HTML Alle Versionen

IBM Revisable Form Text Alle Versionen

IBM FFT Alle Versionen bis 3.0

Microsoft Rich Text Format (RTF) Alle Versionen

Oracle8i interMedia Text Laden von Dokumenten

Page 32: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

DOS Formate

IBMWriting Assistant Version 1.01

Lotus Manuscript Versionen bis 2.0

Microsoft Word Versionen bis 6.0

Microsoft Works Versionen bis 2.0

Office Writer Versionen 4.0 bis 6.0

WordPerfect Versionen bis 7.0

WordStar Versionen bis 7.0

WordStar 2000 Versionen bis 3.0

XyWrite Versionen bis III Plus

Oracle8i interMedia Text Laden von Dokumenten

Page 33: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Windows Formate

Corel WordPerfectfor Windows Versionen bis 8.0

Lotus WordPro

Lotus SmartSuite

Microsoft Windows Works Versionen bis 4.0

Microsoft Windows Write Versionen bis 3.0

Microsoft Word 97 Word 97

Microsoft Word 2000 Beta 2

Microsoft Word for Windows Versionen bis 7.0

Microsoft WordPad Alle Versionen

Novell Perfect Works Version 2.0

Novell WordPerfect for Windows Versionen bis 7.0

WordStar for Windows Version 1.0

Oracle8i interMedia Text Laden von Dokumenten

Page 34: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Text Datenbanken

Oracle8i interMedia Text

Kapitel 3

Indizieren von Dokumenten

Page 35: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

3. Indexe3. Indexe

• bei CREATE INDEX bzw. bei ALTER INDEX können verschiedene Voreinstellungen/Optionen angegeben werden

• beeinflusst die Art und Weise, in der Oracle Text indiziert

Vorgaben / Voreinstellungen für:Vorgaben / Voreinstellungen für:

- Datastore - Filter

- Lexer - Wordlist

- Storage - Stop List

- Section Group

Oracle8i interMedia Text Indizieren von Dokumenten

Page 36: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Erstellen von Voreinstellungen:Erstellen von Voreinstellungen:

-Voreinstellungen für datastore, lexer, filter, wordlist und storage:CTX_DDL.CREATE_PREFERENCE

- Setzen von Attributen:

CTX_DDL.SET_ATTRIBUTE

- Erstellen von Stoplists:

CTX_DDL.CREATE_STOPLIST

- Erstellen von section groups:

CTX_DDL.CREATE_SECTION_GROUP

Oracle8i interMedia Text Indizieren von Dokumenten

Page 37: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

3.1 Datastore Objects:3.1 Datastore Objects:

- DIRECT_DATASTORE

- DETAIL_DATASTORE

- FILE_DATASTORE

- URL_DATASTORE

- USER_DATASTORE

Oracle8i interMedia Text Indizieren von Dokumenten

Page 38: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

DIRECT_DATASTORE :

- wird benutzt, wenn der Text direkt in der Datenbank

gespeichert werden soll

- hat keine Attribute

DETAIL_DATASTORE:

- der Text wird direkt in der Datenbank in Detailtabellen

gespeichert

- Verweise auf diese Detailtabellen befinden sich in der

Mastertabelle

- Attribute:

- binary - detail_table

- detail_key - detail_lineno

- detail_text

Oracle8i interMedia Text Indizieren von Dokumenten

Page 39: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Beispiel: DETAIL_DATASTORE:

begin

ctx_ddl.create_preference(‘my_detail_pref‘,

‘DETAIL_DATASTORE‘);

ctx_ddl.set_attribute (‘my_detail_pref‘, ‘binary‘, ‘true‘);

ctx_ddl.set_attribute (‘my_detail_pref‘, ‘detail_table‘, ‘my_detail‘);

...

end;

CREATE INDEX myindex on my_master (body) indextype is ctxsys.context parameters(‘datastore my_detail_pref‘);

Oracle8i interMedia Text Indizieren von Dokumenten

Page 40: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

FILE_DATASTORE:

- wird benutzt für Text, der in Files gespeichert ist

- auf diese Files wird durch das lokale Filesystem zugegriffen

- Attribute:

- path

URL_DATASTORE:

- wird für der Text benutzt, der gespeichert ist

- in Dateien im World Wide Web (HTTP / FTP)

- in Dateien im lokalen Filesystem (über file Protokoll)

Oracle8i interMedia Text Indizieren von Dokumenten

Page 41: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

URL_DATASTORE:

Jede URL kann in einem extra Textfeld gespeichert werden

Attribute:

- timeout

- maxthreads

- urlsize

- maxurls

- maxdocsize

- http_proxy

- ftp_proxy

- no_proxy

Oracle8i interMedia Text Indizieren von Dokumenten

Page 42: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

USER_DATASTORE:

- wird benutzt, um "stored procedures" zu definieren, die

Dokumente während des Indizierens synthetisieren

- wird z.B. benutzt, um zusätzliche Informationen in den Text

einzufügen

- Attribute

- procedure

Oracle8i interMedia Text Indizieren von Dokumenten

Page 43: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

3.2 Filter Objects:3.2 Filter Objects:

- festlegen, wie Text für die spätere Indizierung gefiltert wird

- sie erlauben Textverarbeitungsdokumente, formatierte

Dokumente, puren Text und HTML

- mögliche Objekte:

- NULL_FILTER

- INSO_FILTER

- USER_FILTER

- CHARSET_FILTER

Oracle8i interMedia Text Indizieren von Dokumenten

Page 44: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

3.3 Lexer Objects:3.3 Lexer Objects:

- wird verwendet, um die Sprache des Textes festzulegen

- mögliche Objekte:

- BASIC_LEXER

- CHINESE_VGRAM_LEXER

- JAPANESE_VGRAM_LEXER

- KOREAN_LEXER

Oracle8i interMedia Text Indizieren von Dokumenten

Page 45: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

BASIC_LEXER:

- Attribute:

- continuation - numgroup

- numjoin - printjoins

- punctuations - skipjoins

- startjoins - endjoins

- whitespace - newline

- base_letter - mixed_case

- composite - index_themes

- index_text - alternate_spelling

Oracle8i interMedia Text Indizieren von Dokumenten

Page 46: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

3.4 Wordlist Objects:3.4 Wordlist Objects:

- wird verwendet, um erweiterte Anfrageoptionen zu ermöglichen

- mögliche Objekte

- BASIC_WORDLIST

3.5 Storage Objects:3.5 Storage Objects:

- wird verwendet, um die Tabellengrösse und die

Erstellungsparameter einer Tabelle anzugeben, die mit einem

Textindex verbunden ist

- mögliche Objekte

- BASIC_STORAGE

Oracle8i interMedia Text Indizieren von Dokumenten

Page 47: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

3.6 Section Group Types:3.6 Section Group Types:

- mögliche Typen:

- NULL_SECTION_GROUP

- BASIC_SECTION_GROUP

- HTML_SECTION_GROUP

- XML_SECTION_GROUP

- NEWS_SECTION_GROUP

Oracle8i interMedia Text Indizieren von Dokumenten

Page 48: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Beispiel:Beispiel:

ctx_ddl.create_preference(‘os08_datastore‘, ‘DIRECT_DATASTORE‘);

ctx_ddl.create_preference(‘os08_lexer‘, ‘BASIC_LEXER‘);

ctx_ddl.set_attribute(‘os08_lexer‘, ‘INDEX_TEXT‘, ‘YES‘)

ctx_ddl.set_attribute(‘os08_lexer‘, ‘INDEX_THEMES‘, ‘NO‘);

ctx_ddl.create_preference(‘os08_wordlist‘, ‘BASIC_WORDLIST‘);

ctx_ddl.set_attribute(‘os08_wordlist‘, ‘STEMMER‘, ‘GERMAN‘);

ctx_ddl.create_stoplist(‘os08_stoplist‘);

ctx_ddl.add_stopword(‘os08_stoplist‘, ‘und‘);

Oracle8i interMedia Text Indizieren von Dokumenten

Page 49: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Index erstellen:Index erstellen:

CREATE INDEX myindex ON mytable(text)

INDEXTYPE IS ctxsys.context

parameters (‘datastore os08_datastore lexer os08_lexer

filter CTXSYS.NULL_FILTER wordlist os08_wordlist

stoplist os08_stoplist‘);

Oracle8i interMedia Text Indizieren von Dokumenten

Page 50: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Text Datenbanken

Oracle8i interMedia Text

Kapitel 4

Stellen von Anfragen

Page 51: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

4. Anfragen4. Anfragen

Es werden grundsätzlich zwei Arten von Anfragen unterschieden,

word Anfragen und about-Anfragen.

4.1 Wort - Anfragen4.1 Wort - Anfragen

Eine word - query ist eine von einfachen Hochkommas

eingeschlossenen Anfrage, nach einem bestimmten Wort oder

einer Phrase.

COUNT_HITS (

index_name IN VARCHAR2,

text_query IN VARCHAR2,

exact IN BOOLEAN DEFAULT TRUE

) RETURN NUMBER;

Oracle8i interMedia Text Anfragen

Page 52: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

4.2 About - Anfragen4.2 About - Anfragen

In allen Sprachen zählen ABOUT Anfragen die Anzahl von relevanten Dokumenten welche die Kriterien einer gestellten Anfrage erfüllen. Diese erlaubt es Dokumente zu finden die konzeptionell mit der gestellten Anfrage beschäftigen

Einfaches Wort: ' about ( Database ) ‘

Wortphrasen: ’ about( soccer rules in international competition ) ’

Nichtstrukturierte ’about(japanese banking investments in

Wortphrasen: indonesia)'

Oracle8i interMedia Text Anfragen

Page 53: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

4.3 Gemischte Anfragen4.3 Gemischte Anfragen

Es ist Grundsätzlich möglich die beiden Anfragetypen zu mischen.

Dies geschieht durch Verwendung von anderen Operatoren wie

AND oder OR.

ABOUT und word Anfrage:

’ about( dogs ) and cat ’

ABOUT Anfrage mit einer anderen ABOUT Anfrage:

’ about ( dogs ) not about( labradors ) ’

Oracle8i interMedia Text Anfragen

Page 54: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

4.4 Operator Prioritäten4.4 Operator Prioritäten

Operator Prioritäten beschreiben die Reihenfolge in der die

Komponenten einer Anfrage bearbeitet werden.

Beispiele:

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

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

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

abc = def ghi & jkl = mno ((abc = def) ghi) & (jkl=mno)

dog and cat WITHIN body dog and (cat WITHIN body)

Oracle8i interMedia Text Anfragen

Page 55: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

4.5 Spezielle Zeichen in Anfragen4.5 Spezielle Zeichen in Anfragen

Wildcard Zeichen

% es kann irgendein Zeichen an dieser Stelle, welche durch das % beschrieben wird, auftreten. ( auch mehrmalig )

_ Der Unterstrich sagt aus das irgendein einzelnes Zeichen an dieser Stelle auftreten kann

Gruppierende ZeichenGruppierende Zeichen

( ) Klammern dienen zum gruppieren von Termen und Operatoren

[ ] Klammern dienen zum gruppieren von Termen und Operatoren. Sie verhindern das Eindringen von expansions Operatoren wie fuzzy oder stem

Oracle8i interMedia Text Anfragen

Page 56: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Escape ZeichenEscape Zeichen

Für Anfragen nach reservierte Wörter oder Zeichen müssen diese

als Escape - Sequenz angegeben werden.

Es bestehen zwei Möglichkeiten dies zu tun.

{} Benutze geschwungene Klammern um eine String von Zeichen und Symbolen als Escape Sequenz zu kennzeichnen.

\ Mit dem Slash wird ein einzelnes Zeichen als Escape – Sequenz gekennzeichnet.

Beispiele:

’AT\&T’ oder ’{AT&T}’

’high\-voltage’ oder ’{high-voltage}’

Oracle8i interMedia Text Anfragen

Page 57: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

4.6 Weitere Anfrage Eigenschaften

Sektionen Suche Proximity Suche

Thesaural Suche Stem and Fuzzy Suche

Case Sensitive Suche Base Letter Conversion

Word Decompounding Alternate Spelling

Query Explain Plan Hierarchical Query Feedback

Oracle8i interMedia Text Anfragen

Page 58: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Beispiel Sectionensuche:

Der folgende Code definiert eine Section group basicgroup welche

vom BASIC_SECTION_GROUP Typ ist.Eine Feldsektion author

wird angelegt. Das visible Flag wird auf FALSE gesetzt.

Begin

ctx_ddl_create_section_group(’basicgroup’, ’BASIC_SECTION_GROUP’);

ctx_ddl.add_field_section(’basicgroup’, ’Author’, ’A’, FALSE);

end;

Wenn das author Feld nicht sichtbar gesetzt ist muß der WITHIN

Operator benutzt werden um Text in der Sektion zu finden.

’(Martin Luther King) WITHIN Author’

Oracle8i interMedia Text Anfragen

Page 59: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Beispiel Sectionensuche:

Eine Anfrage nach Martin Luther King ohne den WITHIN Operator

wird keine Instanz des Termes zurückgeben. Eine Anfrage ohne

den WITHIN Operator wird nur funktionieren wenn das visible Flag

auf TRUE gesetzt wird.

begin

ctx_ddl.add_field_section(’basicgroup’, ’Author’, ’A’, TRUE);

end;

Oracle8i interMedia Text Anfragen

Page 60: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Text Datenbanken

Oracle8i interMedia Text

Kapitel 5

Dokumentenpräsentation

Page 61: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

5. Dokumentenpräsentation5. Dokumentenpräsentation

Mittels interMedia Text Können Dokumente auf verschiedene Art

und Weise angezeigt werden. Zum Beispiel können die Suchworte

der Anfrage unterstrichen werden.

5.1 Zur Verfügung stehende Prozeduren:5.1 Zur Verfügung stehende Prozeduren:

- CTX_DOC.MARKUP

- CTX_DOC.HIGHLIGHT

- CTX_DOC.FILTER

Oracle8i interMedia Text Dokumentenpräsentation

Page 62: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

CTX_DOC:CTX_DOC:

- ist ein PL/SQL Package

- stellt Dokumentenservices zusammen

- verfügbare Funktionen:

- FILTER

- GIST

- HIGHLIGHT

- MARKUP

- PKENCODE

- THEMES

Oracle8i interMedia Text Dokumentenpräsentation

Page 63: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Beispiel - CTX_DOC.FILTER:Beispiel - CTX_DOC.FILTER:

CTX_DOC.FILTER(

index_name IN VARCHAR2,

textkey IN VARCHAR2,

restab IN VARCHAR2,

query_id IN VARCHAR2 DEFAULT 0,

plaintext IN BOOLEAN DEFAULT FALSE);

Erzeugen der Ergebnistabelle für den Filter: create table filtertab (query_id number, document clob);

Erzeugen einer Version des Dokumentes mit dem Textschlüssel

20, mit purem Text: begin ctx_doc.filter('newsindex', 20, 'filtertab', 0, TRUE); end;

Oracle8i interMedia Text Dokumentenpräsentation

Page 64: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Beispiel - CTX_DOC.MARKUP:

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,

);

Oracle8i interMedia Text Dokumentenpräsentation

Page 65: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Erzeugen der Ergebnistabelle für Highlighting:

create table markuptab (query_id number, document clob);

Erzeugen einer Version des Dokumentes mit hervorgehobenen

Wörtern "dog" und "cat", Schlüssel 23, HTML-Version:

begin

ctx_doc.markup(index_name => 'my_index',

textkey => '23',

textquery => 'dog|cat',

restab => 'markuptab',

query_id = '1',

tagset v => 'HTML_DEFAULT');

end;

Oracle8i interMedia Text Dokumentenpräsentation

Page 66: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Text Datenbanken

Oracle8i interMedia Text

Kapitel 6

Vergleich mit SQL - MMText

Page 67: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

6. Vergleich des Standards SQL99 (SQL/MM FullText) mit der 6. Vergleich des Standards SQL99 (SQL/MM FullText) mit der Funktionalität und den Möglichkeiten von OracleFunktionalität und den Möglichkeiten von Oracle

• Oracle interMedia Text unterstützt wie im Standart vorgesehen

neue Suchmechanismen• es werden neue strukturelle Einheiten definiert und eingesetzt• es werden neue Operationen verwendet• die Sprache des Dokuments wird erfasst• es gibt neue Anfrage- ("Boolean query") und • Bearbeitungsmöglichkeiten:

Dies wird im Standart gefordert, und in Oracle umgesetzt.

Oracle8i interMedia Text Vergleich mit SQL-MMText

Page 68: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

BeispieleBeispiele:

- Single word search

- Conceptual search / About Query

- Phrase search

- Context search

- Ranking

Single word search (Standart):Single word search (Standart):

SELECT * FROM myDocs WHERE 1 = CONTAINS(TextBody, '"specific"')

Single word search (Oracle):Single word search (Oracle):

SELECT SCORE(1) title FROM news WHERE CONTAINS(text, 'oracle', 1) > 0;

Oracle8i interMedia Text Vergleich mit SQL-MMText

Page 69: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Conceptual search / About Query (Standart):Conceptual search / About Query (Standart):

SELECT * FROM myDocs WHERE 1 = CONTAINS(TextBody, 'IS ABOUT "every text ..."')

Conceptual search / About Query (Oracle):Conceptual search / About Query (Oracle):

SELECT SCORE(1) title FROM news WHERE CONTAINS(text, 'about(politics)', 1) > 0;

Phrase search (Standart):Phrase search (Standart):

SELECT * FROM myDocs WHERE 1 = CONTAINS(TextBody, '"specific language"')

Phrase search (Oracle):Phrase search (Oracle):

SELECT employee_name, SCORE(1) FROM employee_database WHERE CONTAINS (emp.resume, 'software developer') > 0

Oracle8i interMedia Text Vergleich mit SQL-MMText

Page 70: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Context search (Standart):Context search (Standart):

SELECT * FROM myDocs WHERE 1 = CONTAINS(TextBody, '"text IN SAME SENTENCEAS language"')

Context search (Oracle):Context search (Oracle):

- in Oracle nicht möglich

Ranking (Standart):

SELECT * FROM myDocs WHERE 1.2 < RANK(TextBody, '"specific"')

Ranking (Oracle):

- "RANK" existiert nicht

- mit Umweg über SCORE(xxx) und sortieren bewerkstelligbar

... WHERE CONTAINS (..) > 0 ORDER BY NVL(SCORE(10), 0)

Oracle8i interMedia Text Vergleich mit SQL-MMText

Page 71: Text Datenbanken Oracle8i interMedia Text Version: 30.10.2000 Autoren: Bent Großmann Niels Bauer Zusammenfassung: Dieses Dokument befaßt sich mit Volltextdatenbanken.

Darüber hinaus bietet Oracle weitere Optionen,

siehe "Query Operators / Anfragen".

z.B.: soundex, stem, weight, ...

Oracle8i interMedia Text Vergleich mit SQL-MMText