textdatenbanken l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Textdatenbanken PowerPoint Presentation
Download Presentation
Textdatenbanken

Loading in 2 Seconds...

play fullscreen
1 / 56

Textdatenbanken - PowerPoint PPT Presentation


  • 107 Views
  • Uploaded on

Textdatenbanken. Jana Bulik 98I 15. November 2001. Textdatenbanken - Überblick. 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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Textdatenbanken' - joann


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
textdatenbanken

Textdatenbanken

Jana Bulik 98I

15. November 2001

textdatenbanken berblick
Textdatenbanken - Überblick
  • 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 dokumenten4
1. Laden von Texten/Dokumenten
  • Datastored Objekte
  • SQL – Insertanweisung
  • ctxload
1 laden von texten dokumenten5
1. Laden von Texten/Dokumenten

1.1 Datastored Objekte

- DIRECT_DATASTORE

- DETAIL_DATASTORE

- FILE_DATASTORE

- URL_DATASTORE

- USER_DATASTORE

1 laden von texten dokumenten6
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 dokumenten7
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 dokumenten8
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 dokumenten9
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 dokumenten10
1. Laden von Texten/Dokumenten

USER_DATASTORE

  • Wird benutzt, um zusätzliche Informationen dem Text hinzuzufügen
  • Attribut:
      • Procedure
1 laden von texten dokumenten11
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 dokumenten12
1. Laden von Texten/Dokumenten

1.1 ctxload

- Laden von Texten

- Thesaurus Import und Export

- Dokument Update/Export

1 laden von texten dokumenten13
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 dokumenten14
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 dokumenten15
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 indexwartung17
2. Indexieren und Indexwartung
  • Filterobjekte
  • Lexer Objekte
  • Wortlistenobjekte (Wordlist Objects)
  • Speicherobjekte (Storage Objects)
2 indexieren und indexwartung18
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 indexwartung19
2. Indexieren und Indexwartung

Verschiedene Filterobjekte:

  • NULL_FILTER
  • INSO_FILTER
  • USER_FILTER
  • CHARSET_FILTER
2 indexieren und indexwartung20
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 indexwartung21
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 indexwartung22
2. Indexieren und Indexwartung

BASIC_LEXER: (Attribute)

  • continuation
  • numgroup
  • numjoin
  • skipjoin
  • mixed_case
  • alternate_case
2 indexieren und indexwartung23
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 indexwartung24
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 indexwartung25
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 indexwartung26
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 anfrageoperatoren28
3. Anfragen und Anfrageoperatoren
  • Wort - Anfragen
  • About – Anfragen
  • Gemischte Anfragen
  • Operator Prioritäten
  • Spezielle Zeichen in Anfragen
3 anfragen und anfrageoperatoren29
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 anfrageoperatoren30
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 anfrageoperatoren31
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 anfrageoperatoren32
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 anfrageoperatoren33
3. Anfragen und Anfrageoperatoren

Beispiel:

ABOUT (Text)

  • Text kann einzelnes Wort, Wortgruppe, Satz oder Aneinanderreihung beliebiger Wörter sein
3 anfragen und anfrageoperatoren34
3. 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 anfrageoperatoren35
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 anfrageoperatoren36
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 anfrageoperatoren37
EQUIVALENCE (=)

NEAR (;)

WEIGHT (*), threshold (>)

MINUS (-)

NOT (~)

WITHIN

AND (&)

OR (|)

ACCUMULATE (,)

Wildcard Characters

ABOUT

STEM ($)

FUZZY (?)

SOUNDEX (!)

3. Anfragen und Anfrageoperatoren

Gruppe 2: (Operat. u. Zeichen)

Gruppe 1: (Operatoren)

3 anfragen und anfrageoperatoren38
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 anfrageoperatoren40
3. Anfragen und Anfrageoperatoren

3.4 Spezielle Zeichen in Anfragen

  • Wildcard Zeichen
  • Gruppierende Zeichen
  • Escape Zeichen
3 anfragen und anfrageoperatoren41
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 anfrageoperatoren42
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 anfrageoperatoren43
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 ergebnisdokumenten45
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 ergebnisdokumenten46
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 ergebnisdokumenten47
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 ergebnisdokumenten48
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 text50
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 text51
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 text52
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 text53
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 text54
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 text55
5. Vergleich Oracle interMedia Text mit SQL/MM Full Text
  • Beispiel: "Conceptual Search"

oStandard

SELECT *

FROM myDocs

WHERE 1 = CONTAINS (Textbody, 'IS ABOUT "every text …"');

  • oOracle

SELECT SCORE(1) title

FROM news

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

5 vergleich oracle intermedia text mit sql mm full text56
5. Vergleich Oracle interMedia Text mit SQL/MM Full Text
  • Beispiel: Suche von Phrasen

oStandard

SELECT *

FROM myDocs

WHERE 1 = CONTAINS (TextBody, '"specific language"');

oOracle

SELECT employee_name, SCORE(1)

FROM employee_database

WHERE CONTAINS (emp.resume, 'software developer') > 0;