Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop...

40
ORACLE Text Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008 Oracle Text eine Oracle Perle DOAG-Konferenz, Nürnberg 2.12.2008 Carsten Herder - Senior Berater OPITZ CONSULTING

Transcript of Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop...

Page 1: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Oracle Text – eine Oracle PerleDOAG-Konferenz, Nürnberg

2.12.2008

Carsten Herder - Senior BeraterOPITZ CONSULTING

Page 2: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

AgendaEin erstes Beispiel

Einen Index erstellen

Benutzereinstellungen

Suchtechniken

Mixed Queries

Suchen in der Praxis

Ein Blick hinter die Kulissen

Synchronisation

Fragmentierung

Fazit, Fragen

Oracle Text

Textsuche

Administration

Ein Fazit

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Suchstrategien

Page 3: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Warum Oracle Text?

Während früher vor allem strukturierte Daten in Datenbanken

gespeichert wurden, werden heute zunehmend auch immer

mehr unstrukturierte Daten in Datenbanken abgelegt, z.B.

- Artikelbeschreibungen

- Musiktitel und Songtexte

- Dokumente

Doch wie sucht man in diesen Texten?

LIKE % oder INSTR als Suchen sind sehr unperformant, weil sie

keine Indizes verwenden (FTS!)

Oracle Text bietet index-basierte Suche nach Wörtern in Texten

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 4: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Ein erstes Beispiel…

Suche in der Tabelle MUSIKTITEL nach musikalischen Werken

TITEL INTERPRET KATEGORIE JAHR

We are the champions Queen Rock 1977

World in my Eyes Depeche Mode Pop 1990

Walking in my Shoes Depeche Mode Pop 1993

Voyage of Gurdjieff Therion Heavy Metal 2004

Faerie Queen Blackmore´s Night Pop 2006

World of Stone Blackmore‘s Night Pop 2006

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 5: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Ein erstes Beispiel…

CREATE INDEX titel_ctx ON musiktitel(titel)

INDEXTYPE IS ctxsys.context;

SELECT *

FROM musiktitel

WHERE CONTAINS(titel, ‘World‘) > 0;

TITEL INTERPRET KATEGORIE JAHR

World in my Eyes Depeche Mode Pop 1990

World of Stone Blackmore‘s Night Pop 2006

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 6: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Filter

## ###

#### #

### ##

Sectioner## #

###

# ##

## #

###

# ##

Indizierung

Lexer

Datastore

Éü

## ###

#### #

### ##

Benutzereinstellungen bei Erstellung

eines Textindex…

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 7: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

DIRECT_DATASTORE

Textspalte als Datenquelle

Typ VARCHAR2, CHAR, CLOB, BLOB, u.a.

Éü

Filter

Sectioner## #

###

# ##

## #

###

# ##

Indizierung

Lexer Éü

## ###

#### #

### ##Datastore## ###

#### #

### ##

TITEL INTERPRET KATEGORIE

We are the champions Queen Rock

World in my Eyes Depeche Mode Pop

Walking in my Shoes Depeche Mode Pop

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 8: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

MULTI_COLUMN_DATASTORE

Index über zwei oder mehr (Text-)Spalten.

Die Spalteninhalte werden virtuell

aneinandergehängt

Definition der Spalten über Preferences

Éü

Filter

Sectioner## #

###

# ##

## #

###

# ##

Indizierung

Lexer Éü

## ###

#### #

### ##Datastore## ###

#### #

### ##

TITEL INTERPRET KATEGORIE

We are the champions Queen Rock

World in my Eyes Depeche Mode Pop

Walking in my Shoes Depeche Mode Pop

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 9: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

MULTI_COLUMN_DATASTORE

BEGIN

ctx_ddl.create_preference(

'mcs',

'MULTI_COLUMN_DATASTORE );

ctx_ddl.set_attribute(

‚mcs',

'columns',

'titel, interpret');

END;

CREATE INDEX mt_ctx ON musiktitel(titel)

INDEXTYPE IS ctxsys.context

PARAMETERS ('DATASTORE mcs');

Éü

Filter

Sectioner## #

###

# ##

## #

###

# ##

Indizierung

Lexer Éü

## ###

#### #

### ##Datastore## ###

#### #

### ##

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 10: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

.csv.txt.doc .pdf.ppt

Filter

Extrahiert Text aus Binärdokumenten.

BINARY

.hmtl

TEXT

Éü

Sectioner## #

###

# ##

## #

###

# ##

Indizierung

Lexer Éü

## ###

#### #

### ##Datastore## ###

#### #

### ##

Filter

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 11: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Éü

Indizierung

Lexer Éü

## ###

#### #

### ##Datastore## ###

#### #

### ##

Filter

Sectioner## #

###

# ##

## #

###

# ##

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Der Sectioner

Zerlegt den Text in

- Sektionsinformation

- Textinformation

Page 12: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Der Lexer

Zerlegt den Text in einzelne Wörter

Definiert Trennzeichen (z.B. „-“ oder „_“)

UPPERCASE- oder MixedCase-Indizierung?

Spracheinstellungen

We are the Champions

We

are

the

ChampionsSectioner

## #

###

# ##

## #

###

# ##

Indizierung

## ###

#### #

### ##Datastore## ###

#### #

### ##

Filter

Lexer Éü

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 13: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Index aufbauen

Wird später im Detail beschrieben…

Mit Stoppwortlisten kann man Worte

definieren, die wegen ihrer geringen

Selektivität bei der Indizierung ignoriert

werden (z.B. „der“, „die“, „das“)Sectioner## #

###

# ##

## #

###

# ##

## ###

#### #

### ##Datastore## ###

#### #

### ##

Filter

Indizierung

ÉüLexer Éü

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 14: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Textsuche

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 15: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

AND- und OR-Operator

SELECT *

FROM musiktitel

WHERE contains(titel, ‘world AND eyes‘) > 0;

SELECT *

FROM musiktitel

WHERE contains(titel, ‘world OR eyes‘) > 0;

TITEL INTERPRET KATEGORIE JAHR

World in my Eyes Depeche Mode Pop 1990

World of Stone Blackmore‘s Night Pop 2006

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 16: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

WITHIN-Operator zur Suche in Sektionen

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

HTML_TITEL_INFO

<TITEL> Faerie Queen </TITEL>

<INTERP> Blackmore´s Night </INTERP>

SELECT *

FROM musiktitel

WHERE CONTAINS(html_titel_info,

‘ queen WITHIN TITLE

AND night WITHIN INTERP ‘) > 0;

Page 17: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Proximity Search mit NEAR (;)

SELECT *

FROM musiktitel

WHERE contains(songtext, ‘münchen;hofbräuhaus‘) > 0;

SONGTEXT

München Hofbräuhaus

Hofbräuhaus München

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 18: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

SELECT *

FROM musiktitel

WHERE contains(songtext, ‘lola AND $ rannte‘) > 0;

Stemming ($) – Wörter mit demselben Wortstamm

rannte rennen

rennt

gerannt

Termexpansion!!…

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 19: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Termexpansion mit CTX_QUERY.EXPLAIN analysieren

EXECUTE CTX_QUERY.EXPLAIN(

index_name => 'tit_ctxidx',

text_query => '$rannte',

explain_table => 'test_explain',

sharelevel => 0

);

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 20: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Weitere Termexpansionen…

Unscharfe Suche mit Fuzzy-Operator (?)CONTAINS(titel, ‘?Waking‘)

Wildcard-Suche mit %CONTAINS(titel, ‘champ%‘)

Klangähnliche Wörter mit Soundex (!)CONTAINS(titel, ‘!Wolking‘)

Synonymsuche mit SYN-OperatorCONTAINS(titel, ‘SYN(sepp, syn_liste)‘)

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 21: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Mixed Queries

In der Praxis möchte man oft Datensätze kombiniert durch

eine Textquery und eine strukturierte Query ermitteln.

SELECT *

FROM musiktitel

WHERE contains(titel, ‘champions‘) > 0

AND kategorie = ‘Rock‘

AND jahr BETWEEN 1975 AND 1980

ORDER BY jahr;

Problematisch, falls sowohl Textsuche als auch unstrukturierte

Suchen wenig selektiv sind

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 22: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Mixed Queries

COMPOSITE DOMAIN INDEX (CDI) kombiniert einen

Textindex mit strukturierten Daten (11gR1)

CREATE INDEX titel_ctx ON musiktitel(titel)

INDEXTYPE IS ctxsys.context

FILTER BY kategorie, jahr

ORDER BY jahr;

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 23: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Suchstrategien Textsuche in der Praxis

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 24: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Anwendungsfallgruppe 1: „Eindeutige Identifizierung“

Beispiele:

Artikelnummer anhand einer Artikelbeschreibung identifizieren

Musikalisches Werk anhand von Titel- und

Interpreteninformationen identifizieren

Strategievorschlag:

Algorithmische Suche

Zunächst „scharfe“ Suche

Falls erforderlich schrittweise Aufweichung der

Suchbedingungen

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 25: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

CONTAINS(titel, ‘danzing AND queen‘)

CONTAINS(titel, ‘?danzing AND ?queen‘)

CONTAINS(titel, ‘danzing OR queen‘)

Eindeutiger

Treffer oder

TrefferlisteKein Treffer

Kein Treffer

Kein Treffer

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Suche endet trefferlos

Anwendungsfallgruppe 1: „Eindeutige Identifizierung“

Page 26: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Anwendungsfallgruppe 2:

„Google-ähnliche Dokumentensuche“

Beispiele:

Alle Zeitungsartikel in der Datenbank finden, welche die

Begriffe „Kioto“ und „Klimagipfel“ enthalten

Strategievorschläge:

Tolerante Suche, Bewertung der Suche mit Score-Funktion

Query Rewrite (10g)

Query Relaxation (10g)

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 27: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Anwendungsfallgruppe 2:

„Google-ähnliche Dokumentensuche“

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

SELECT /*+ FIRST_ROWS(10) */ *

FROM musiktitel

WHERE CONTAINS(titel, ‘<query>‘

|| ‘<textquery lang=“GERMAN“ grammar=“CONTEXT“>‘

|| ‘ <progression>‘

|| ‘ <seq> kioto AND klimagipfel </seq>

|| ‘ <seq> ?kioto AND klimagipfel </seq>

|| ‘ <seq> kioto OR klimagipfel </seq>

|| ‘ </progression></textquery></query>‘)

AND ROWNUM <= 10;

Page 28: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Administration Wartung, Tuning und…

ein Blick hinter die Kulissen

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 29: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

DR$TITLE_CTX$I

Was passiert im Hintergrund, wenn ein CONTEXT

Index angelegt wird?

CREATE INDEX title_ctx ON musictitles(title)

INDEXTYPE ctxsys.context;

Folgende Tabellen werden implizit angelegt:

DR$TITLE_CTX$N

DR$TITLE_CTX$K

DR$TITLE_CTX$R

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 30: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Tabelle DR$<indexname>$I

Ist eine Index-organisierte Tabelle

Mappt jedes Wort (Token) auf die Dokumentpositionen

Diese Information befindet sich im BLOB-Feld TOKEN_INFO

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 31: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Synchronisation

Der CONTEXT Index ist per Default asynchron

Manuelle Aktualisierung mit CTX_SYS.SYNC_INDEX

Seit 10g Synchronisierung des Index auch möglich

- per Schedule

- ON COMMIT (Fragmentierung!)

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 32: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Synchronisation

INSERTs und UPDATEs auf der Quelltabelle führen zu

Einträgen in einer PENDING-Queue

Queue

RowID

RowID

CONTEXT Index

Tabelle

Synchronize

Index

View CTX_USER_PENDING

INSERT,

UPDATE

Die nächste Synchronisation aktualisiert den Index ($I, $K) für

alle Dokumente in der Pending Queue und leert diese danach.

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 33: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Häufige Synchronisation führt zu Fragmentierung!

Beispiel 1: Häufige Synchronisation

1. Datensatz einfügen

2. Synchronisation

3. Datensatz einfügen

4. Synchronisation

2 Datensätze eingefügt => 6 Einträge in der $I-Tabelle

DR$TITLE_CTX$I

EINE <Doc1, Pos11>

KLEINE <Doc1, Pos12>

NACHTMUSIK <Doc1, Pos13>

Eine große Nachtmusik

Eine Kleine Nachtmusik

EINE <Doc2, Pos21>

GROSSE <Doc2, Pos22>

NACHTMUSIK <Doc2, Pos23>

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 34: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Häufige Synchronisation führt zu Fragmentierung!

Beispiel 2: Gebündelte Synchronisation

1. Datensatz einfügen

2. Datensatz einfügen

3. Synchronisation

2 Datensätze eingefügt => nur 4 Einträge in der $I-Tabelle

DR$TITLE_CTX$I

EINE <Doc1, Pos11>

<Doc2, Pos21>

KLEINE <Doc1, Pos12>

NACHTMUSIK <Doc1, Pos13>

<Doc2, Pos23>

GROSSE <Doc2, Pos22>

Eine große Nachtmusik

Eine Kleine Nachtmusik

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 35: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Was tun gegen Fragmentierung?

Mit Optimierung (CTX_DDL.OPTIMIZE_INDEX)

kann man den Index defragmentieren.

DR$TITEL_CTX$I

EINE <Doc1, Pos1>,

<Doc2, Pos21>

KLEINE <Doc1, Pos2>

NACHTMUSIK <Doc1, Pos3>,

<Doc2, Pos23>

GROSSE <Doc2, Pos22>

DR$TITEL_CTX$I

EINE <Doc1, Pos11>

KLEINE <Doc1, Pos12>

NACHTMUSIK <Doc1, Pos13>

EINE <Doc2, Pos21>

GROSSE <Doc2, Pos22>

NACHTMUSIK <Doc2, Pos23>

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 36: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Was tun gegen Fragmentierung?

Wie jeder B*Tree Index sollte ein Textindex von Zeit zu Zeit

komplett neu aufgebaut werden, wenn es viele Updates/ Deletes

der Basistabelle gegeben hat:

DROP und CREATE INDEX

REBUILD (11g: auch als Online Index Recreation)

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 37: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Was tun gegen Fragmentierung?

Seit 10g gibt es für den Index die Einstellung TRANSACTIONAL

Suchergebnisse werden dabei kombiniert:

Suche im

Textindex

On-the-Fly-Suche in den

Dokumenten der Pending Queue

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 38: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Ein Fazit

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Page 39: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Oracle Text Textsuche AdministrationSuchstrategien Ein Fazit

Ein Fazit

Oracle Text ist eine mächtige Technologie. Zahlreiche Packages

ermöglichen Wartung, Administration und Analyse von Indizes.

Mit jeder neuen DB Version kommen neue Features hinzu, z.B.

Transactional (10g), CDI (11g), User-defined Scoring (11g)

Einfache Textsuchen können sehr schnell erstellt werden

Im Gegensatz zu normalen Indizes erfordern Oracle Text Indizes

aber sehr viel mehr Betreuung!

Die Hauptherausforderung im Projekt besteht in der Entwicklung

einer effizienten Suchstrategie

Das Beste zum Schluss: Oracle Text ist in jeder Standard- und

Enterprise Edition enthalten und ohne Lizenzierung!

Page 40: Oracle Text eine Oracle Perle - doag.org · PDF fileWalking in my Shoes Depeche Mode Pop Oracle Text Textsuche Suchstrategien Administration Ein Fazit. ORACLE Text –Eine Oracle Perle,

ORACLE Text – Eine Oracle Perle, DOAG Konferenz, Nürnberg, 2.12.2008

Fragen?

... und Antworten

Kontaktadresse:

Carsten Herder

OPITZ CONSULTING München GmbH

Telefon: 0176/ 81011836

E-Mail: [email protected]

Internet: www.opitz-consulting.de

Oracle Text Textsuche Suchstrategien Administration Ein Fazit