Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

DOAG SIG interMedia Mannheim, 13.11.2001 Barbara Steinhanses Business Development Manger interMedia, Text und Lite Business Unit - Application Server Oracle.

Ähnliche Präsentationen


Präsentation zum Thema: "DOAG SIG interMedia Mannheim, 13.11.2001 Barbara Steinhanses Business Development Manger interMedia, Text und Lite Business Unit - Application Server Oracle."—  Präsentation transkript:

1 DOAG SIG interMedia Mannheim, 13.11.2001 Barbara Steinhanses Business Development Manger interMedia, Text und Lite Business Unit - Application Server Oracle Deutschland GmbH Oracle TEXT New Features

2 Agenda Oracle TEXT - Indextypen CONTEXT, CTXCAT, CTXRULE XML - Suchmöglichkeiten und mehr...

3 Der Context Index Oracle8i Release 1 (8.1.5)

4 Überblick - CONTEXT  Zielsetzung: für die Indizierung auch sehr grosser Dokumentenmengen - formatiert oder unformatiert - Speicherung in der Datenbank oder Extern  sehr umfangreiche Volltextrecherche-Funktionalität  contains Operator  Asynchrone Indexpflege  Datastore Präferenz für besondere und komplexe Anforderungen

5 Überblick - CONTEXT  Integration in eine Vielzahl von Oracle Produkten: Oracle Portal Oracle IFS Oracle UltraSearch Oracle Applications  und Grundlage einer Vielzahl von Partneranwendungen: Pirobase / Pironet DC4 / Digital Collections @DAM / PictureSafe DMS / Quark NextGen / Multicom Mediasurface Artesia Bulldog Pinetree Rittershaus SailLabs NuGenesis … und viele andere  Und natürlich einer Vielzahl von Endkunden-Anwendungen: Spiegel, ASV, Agrevo-Aventis, Bayer Leverkusen, AOK, Sat1, Kirch, …..

6 Überblick - CONTEXT  Zulässige Datentypen für die TextSpalte: varchar2, char, long, (long raw), clob, blob, bfile, xmltype  zulässige Parameter bei der CONTEXT-Indexerstellung: – LEXER - WORDLIST – DATASTORE - FILTER – SECTION GROUP - MEMORY – STOPLIST - STORAGE  zulässige Präferenzen und Sonderspalten : Multi-Stop List und Multi-Lexer Sprache, Format und Characterset Spalten

7 Überblick - CONTEXT Exakte Wort/Phrasensuche Case-sentive Suche Baseletter Indizierung (z.B. Französisch, Spanisch,...) Alternative Schreibweisen (Deutsch, Dänisch, Schwedisch) Logische Kombinationen “and”, “or”, “not”, ”equivalence” Wildcard-Suche Erweiterungen : Fuzzy matching (unterschiedliche Sprachen) Soundex Kompositasuche (Deutsch und Niederländisch) Multilinguale Stammsuche Spanisch, Französisch, Deutsch, Niederländisch, Italienisch, Englisch

8 Near - Operator mit Distanzangabe und Reihenfolge Suche in Sektionen, Sätzen und Paragraphen Score-bezogene Funktionen accumulate, minus, weight Operationen auf Ergebnislisten: threshold ISO 2788 konformer Thesaurus Synonyme Themensuche (für Englisch + Französisch verfügbar) Unterstützung asiatischer Sprachen Überblick - CONTEXT

9 CREATE INDEX text_index ON articles(text) INDEXTYPE is context; CREATE INDEX text_index ON articles(text) INDEXTYPE is context; Indizierung Volltext suche SELECT pubdate, author, title FROM articles WHERE pubdate BETWEEN ‘01-APR-98’ AND ‘10-APR-98’ AND CONTAINS (text,‘Oracle AND ABOUT (Internet)’) > 0 SELECT pubdate, author, title FROM articles WHERE pubdate BETWEEN ‘01-APR-98’ AND ‘10-APR-98’ AND CONTAINS (text,‘Oracle AND ABOUT (Internet)’) > 0 Themen suche strukturiert Abfrage Oracle interMedia Der Text Index

10 DIGAS

11 Der CTXCAT Index Oracle8i Release 3 (8.1.7) Oracle9i Text Release 1 (9.0.1)

12 Überblick - CTXCAT  Zielsetzung: für die Indizierung kleiner Text-Fragmente ( ca. 5 Worte) ggfs. mit zusätzlichen strukturierten Feldern und hohe Anforderungen an die Aktualität des Indexes  Einfache Volltextrecherche  Eigene Abfragesyntax  Synchrone Indexpflege  Index_Sets für die zusätzliche Indizierung von date, number Spalten

13 Überblick - CTXCAT  Zulässige Datentypen für die TextSpalte: varchar2, char  zulässige Parameter bei der CTXCAT-Indexerstellung: – INDEX SET – LEXER – MEMORY – STOPLIST – STORAGE – WORDLIST  z.Zt. nicht zulässige Parameter, Präferenzen und Sonderspalten : Datastore, Filter oder Section Group Multi-Stop List und Multi-Lexer Sprache, Format und Characterset Spalten

14 Überblick - CTXCAT  z.Zt. Keine Unterstützung von : – Document Services highlighting, markup, themes, gists – Query Services explain, query feedback, browse words (Support hierfür ist in einem späteren Release vorgesehen.) – Theme Indexing  Japanische Sprachunterstützung: Index-Erstellung unter Verwendung von Prefix-Indizierung

15 CONTEXT vs. CTXCAT Funktionalität CONTEXTCTXCAT Indexpflegeasynchron CTX_DDL.sync_index synchron als Teil der Transaktion auf der Basistabelle OperatorCONTAINSCATSEARCH Abfragesprache Sehr umfangreich: Boolesche Operatoren, Phrasen- suche, Themensuche, Ähnlich- keitssuche, phonetische Suche, Kompositasuche, Wildcard + Doppel-Trunkierung, Prefix... Begrenzt: Phrasensuche, Boolesche Operatoren keine Wildcard-Suche in 8.1.7 eingeschränkt in 9.0.1

16 CONTEXT vs. CTXCAT Abfrage-Operatoren AND, OR, AND-NOT, PHRASE  accum, within, fuzzy, stem, wildcard, thesaurus, near, etc. Funktionalität Abfrage- Syntax CTXCATCONTEXT A & B A | B A ~ B A B (A B) & C (A & B) | C A B A | B +A -B "A B" "A B" C (A B) | C

17 CTXCAT - Beispiel CREATE TABLE EMP ( EMPNO number(4) NOT NULL, ENAME varchar2(10), HIREDATE date, skills varchar2(100) );

18 INSERT INTO EMP VALUES (7369, 'SMITH', TO_DATE('17-DEC-1980', 'DD-MON-YYYY'), ‘ intermedia, Text, Oracle Lite '); commit; CTXCAT - Beispiel

19 CREATE INDEX emp_skills ON emp(skills) INDEXTYPE IS CTXSYS.CTXCAT PARAMETERS ('lexer ctxsys.basic_lexer stoplist ctxsys.default_stoplist memory 10m'); CTXCAT - Beispiel

20 select ename, skills from emp where catsearch (skills,' “oracle lite“ ', NULL ) > 0; ENAME SKILL ---------- ------------------------- SMITH INTERMEDIA, TEXT, ORACLE LITE CTXCAT - Beispiel

21  Erhöhung der Performance bei gemischten Abfragen (d.h. in Kombination mit einem CTXCAT-Index  Sub-Indexes können auf eine oder mehrere strukturierte Spalten angelegt werden  vorherige Analyse der “typischen” Abfragen der Anwendung ist notwendig ( Sub-Indexes sind den B-Tree Indexes ähnlich ) CTXCAT - Index Set

22 CTXCAT Gemische Abfragen mit Index Sets Erstellung des Index_Sets: exec ctx_ddl.create_index_set('emp_skills'); /* sub-index with hiredate */ exec ctx_ddl.add_index('emp_skills','hiredate'); Erstellung des kombinierten Indexes: CREATE INDEX emp_skills ON emp(skills) INDEXTYPE IS CTXSYS.CTXCAT PARAMETERS ('index set emp_skills');

23 Der CTXRULE Index Oracle9i Text Release 1 (9.0.1)

24 Überblick - CTXRULE  Zielsetzung: für die Erstellung von Volltextsuch-basierten Routing-Systemen z.B. Push- Dienste oder eine query-basierte Dokumenten- Klassifizierung, etc.  Neuer Indextyp - verfügbar ab der Version 9.0.1  Klassifizierungsregeln auf der Grundlage von TEXT Queries Indiziert werden die, in einer Tabelle, gespeicherten Queries

25  Klassifiziert Dokumente nach dem Inhalt (anhand der Query), z.B. nach Ressorts wie Sport, Politik, Wirtschaft, …  MATCHES Operator weist die Dokumente anhand der definierten Regeln zu  für eine spätere Version geplant: Verschachtelung der Klassifikationsebenen, z.B. – Musik  klassische Musik  moderne Musik Überblick - CTXRULE

26  1. Anlegen einer Tabelle, in der die Regeln für die Dokumenten- Klassifizierung gespeichert werden  2. Erstellen der Regeln / Queries  3. Anlegen des CXTRULE Indexes  4. Verwendung des MATCHES Operators, um die Dokumente zu klassifizieren Vorgehensweise: Dokumenten-Klassifizierung

27  1. Anlegen einer Tabelle, in der die Regeln für die Dokumenten-Klassifizierung gespeichert werden CREATE TABLE Abfrageregeln_1 ( queryid NUMBER PRIMARY KEY, kategorie VARCHAR2(30), query VARCHAR2(2000) ); Vorgehensweise: Dokumenten-Klassifizierung

28  2. Erstellen der Regeln / Queries INSERT INTO Abfrageregeln_1 VALUES (1, 'Politik', ’Demokratische Partei OR Republikaner’ ); INSERT INTO Abfrageregeln_1 VALUES (2, ‘klassische Musik', ' (Mozart OR Bach) NOT (Pop OR {Moderne Musik} )’ ); Vorgehensweise: Dokumenten-Klassifizierung

29  Folgende TEXT Operatoren sind im Zusammenhang mit der MATCHES Funktionalität zulässig: – ABOUT, AND, EQUIVALENCE, NEAR, NOT, OR, PHRASE, STEM, WITHIN  nicht zulässig sind: – ACCUM, EQUIV, FUZZY, MINUS, SOUNDEX, THRESHOLD, WEIGHT, WILDCARD Vorgehensweise: Dokumenten-Klassifizierung

30  3. Anlegen des CXTRULE Indexes CREATE INDEX abfrageregeln_1 _idx ON abfrageregeln _1 (query) INDEXTYPE IS CTXSYS.CTXRULE PARAMETERS ( ’ lexer my_basic_lexer wordlist my_wordlist ' ); Vorgehensweise: Dokumenten-Klassifizierung

31  Zulässige Datenformate für die TextSpalte: Ascii, HTML, XML  zulässige Parameter bei der CTXRULE-Indexerstellung: – LEXER – MEMORY – STOPLIST – STORAGE – WORDLIST – SECTION GROUP  z.Zt. nicht zulässige Parameter, Präferenzen und Sonderspalten : Datastore, Filter Überblick - CTXRULE

32  4. … nun sollen eingehende Dokumente, die in der Tabelle NEWS gespeichert werden, automatisch über den MATCHES Operator klassifiziert werden SQL > desc NEWS newsidnumber autorvarchar2(30) quellevarchar2(30) artikelclob Vorgehensweise: Dokumenten-Klassifizierung

33  4. Die Klassifizierung der Dokumente kann z.B. über einen BEFORE INSERT TRIGGER erfolgen. Die ermittelten Kategorien werden in diesem Beispiel in einer separaten Tabelle news_klassifizierung gespeichert Vorgehensweise: Dokumenten-Klassifizierung BEGIN FOR c1 IN (select kategorie from abfrageregeln_1 where MATCHES (query, :new.article) > 0 ) LOOP INSERT INTO news_klassifizierung (newsid, kategorie) VALUES (:new.newsid, c1.kategorie); END LOOP; END;

34  Richtlinien  DML updated den Index asynchron  Das Dokument :  Ist nicht indiziert  wird geparsed, wenn MATCHES aufgerufen wird  muss nicht in der DB gespeichert werden  Die MATCHES Funktion:  gilt nur mit einem RULE index  erlaubt eine Teilmenge der Text Query Operatoren  kann aus einem Trigger aufgerufen werden  Japanische Dokumente können nicht klassifiziert werden, da Wildcards nicht unterstützt werden Vorgehensweise: Dokumenten-Klassifizierung

35  XML Indizierung

36 Nested Section - Suche Die Matrix Einführung in die Matrix - Algebra select price from media where contains(desc, ‘matrix within title within movie’)>0 Suche nach Attributwerten Oracle interMedia und DC4 select title from books where contains(text, ‘Steinhanses within book@author’)>0 XML Suche (Version 8.1.7)

37  Neuer Oracle 9i Server-Datentyp Speichern von XML Dokumenten in der DB  implementiert als CLOB prüft XML-Dokumente auf well-formed  durchsuchbar mit SQL mit XPATH Unterstützung  Zugriff über SQL oder PL/SQL  Funktionen wie getClobVal()  Operationen wie Extract() und ExistsNode()  Alle neuen SQL Funktionen liefern XML Dokumente als XML_TYPE zurück  Spalten vom Typ XML_TYPE können mit 9i TEXT indiziert werden  weitere Infos hierzu: Oracle 9i New Features - Kapitel 2 zu XML Enhancements ORACLE 9 i - XML TYPE

38  2 neue XPATH Operatoren in 9i TEXT: – INPATH – HASPATH  Für beide Operatoren gilt:  Suche nach XML-Dokumenten basiert auf: – section paths – section path contents  Verwendung von CONTAINS  Indizierung mit der PATH_SECTION_GROUP XPATH Operator

39  INPATH Operator ähnlich dem WITHIN Operator, aber nicht Angabe eines einzelnen Sektionsnamens sondern Angabe eines Pfades(PATH)  ermöglicht die Volltext-Suche innerhalb – eines Elementes / Tag ( = Sektion) – eines XML-Pfades ( = Sektions-Pfad) – eines XML-Pfades, in dem Wildcards verwendet werden – eines Elementes mit Attributwerten  bitte beachten: XML Tags und Attriubutwerte sind CASE-SENSITIV XPATH Operator

40  Einfaches INPATH Beispiel M ozart im top-level Element Musik: SELECT id, doc_name FROM doc WHERE CONTAINS ( text, 'Mozart INPATH (Musik) ') > 0; Mozart im XML-Pfad Musik/Oper: Mozart INPATH (Musik/Oper) Mozart im Element Musik mit dem Attribut Oper =Magische Flöte Mozart INPATH (Musik[Oper="Magische Flöte"]) XPATH Operator

41  INPATH Examples with Wildcards Mozart im Element Musik - auf beliebiger Ebene Mozart INPATH (//Musik) Mozart im Element Oper mit einem höher geordeneten Element Musik Mozart INPATH (music//opera) Mozart im Element Oper mit dem Grandparent Element Musik Mozart INPATH (music/*/opera) Mozart Element Oper m. untersch. bezeichneten übergeordneten Knoten Mozart INPATH (music/*/classical/*/*/opera) XPATH Operator

42  INPATH Beispiele mit Booleschen Operatoren Mozart im Element Musik ohne nachfolgendes Element Jazz Mozart INPATH (Musik[NOT(Jazz)]) Mozart im Element Musik mit nachfolgenden Elementen Flöte UND Piano Mozart INPATH (Musik[Flöte AND Piano]) Mozart im Element Musik mit nachfolgenden Elementen Flöte ODER Piano Mozart INPATH (Musik[Flöte OR Piano]) Mozart im Element Musik mit dem nachfolgenden Elementen Oper UND dem Attributwert Komponist = Bach Mozart INPATH (Musik[Oper AND @Komponist = "Bach"]) XPATH Operator

43  HASPATH Operator Suche auf alle XML-Dokumente im angegebenen XML-Pfad … HASPATH (Musik/Oper/Komponist)... Suche auf alle XML-Dokumente, die den spezifischen Wert im angegebenen XML-Pfad aufweisen … HASPATH (Musik = “Mozart”)... Der Index MUSS mit der PATH_SECTION_GROUP erstellt werden Verwendung von // und * Wildcards XPATH Operator

44  … zusätzliche neue Funktionalitäten ….

45  Unterstützt werden in Oracle 9i Themen für alle single-byte Sprachen, deren Worte durch Leerzeichenen getrennt werden.  Themenanalyse mit Hilfe einer Knowledge Base  Knowledge Base basiert auf einem Thesaurus  Verwendung des ABOUT Operators  spezieller Themen-Index Themen in unterschiedlichen Sprachen

46  Erstellung, bzw. Erweiterung der vorhandenen Knowledge Base (englisch, französisch) mit dem ctxkbtc compiler NLS_LANG muss gesetzt sein Thesaurus muss entsprechend geladen sein Stopwortliste kann der Knowledge Base hinzu compiliert werden  Ist keine Knowledge Base für die Sprache vorhanden werden Themen aus dem entsprechenden Thesaurus abgeleitet Themen in unterschiedlichen Sprachen

47  Beispieldatei für das Deutsche: $ORACLE_HOME/ctx/data/del/drde.dct  Einträge für das deutsche Wort Hauptbahnhof  Hauptbahnhof Haupt#Bahnhof  Hauptbahnhofes Haupt#Bahnhof  Hauptbahnhöfe Haupt#Bahnhof  Hauptbahnhoefe Haupt#Bahnhof User Dictionary für die Komposita Indizierung

48  In 9i Text gibt es für die Formatspalte einen neuen Wert : => IGNORE IGNORE bedeutet, dass die Zeile nicht indiziert werden soll für Zeilen, die Daten enthalten, die nicht text-indiziert werden können, wie z.B. Bilder, Audios, Videos,... Beispiel: CREATE INDEX dokument_idx ON dokumente(description) INDEXTYPE IS ctxsys.context PARAMETERS ( 'FORMAT COLUMN descr_type' ); Format-Spalte - IGNORE

49  Local Partitioned Text Indexes können auf Tabellen angelegt werden, die RANGE partitioniert sind maximale Anzahl von Partitionen pro Index 9999  Beispiel: create table ptest (id number, text varchar2(80)) partition by range (id) (partition p1 values less than (200), partition p2 values less than (400), partition p3 values less than (700)); create index ptest_idx on ptest (text) indextype is ctxsys.context local parameters (‘filter ctxsys.inso_filter’); Local Partitioned TEXT Indexes

50  CTX_DDL modifizierte Prozeduren: SYNC_INDEX hat 2 neue Parameter : - für das Spezifizieren der Memory-Grösse - und für die Angabe von Partitionen Beispiel: begin ctx_ddl.sync_index(’BSE_INDEX’, ’2M’, ’P2’); end; Neue und aktualisierte Prozeduren

51 Weiterführende Informationen  Oracle9i Text Reference, Oracle9i Text Application Developer’s Guide  Oracle8i Documentation Addendum Release 3 (8.1.7)  http://webiv.oraclecorp.com Note 119712.1 : „The InterMedia Text CTXCAT Indextype and How it Works“ Note 136395.1 : „Using Oracle 9i Document Classification New Feature“ Note 150307.1 „Technical Overview: Oracle TEXT Version 9.0.1“ http://webiv.oraclecorp.com

52 A Q & Q U E S T I O N S A N S W E R S


Herunterladen ppt "DOAG SIG interMedia Mannheim, 13.11.2001 Barbara Steinhanses Business Development Manger interMedia, Text und Lite Business Unit - Application Server Oracle."

Ähnliche Präsentationen


Google-Anzeigen