Roland Tilgner Solution Architects & Team Coaching DEVELOPMENT ORACLE TEXT AUS PL/SQL-SICHT Features und Möglichkeiten
ZURPERSON Roland Tilgner
ZURFIRMA Roland Tilgner Solution Architects & Team Coaching
AGENDA Oracle Text Features Schnittstellen Demo auf SQL-Ebene SQL PL/SQL Java, PHP...
AGENDA Oracle Text Features Schnittstellen Demo auf SQL-Ebene SQL PL/SQL Java, PHP... Schnittstellen im Detail Aufbau einer Suchmaschine Implementierungsbeispiele Suchabfrage Snippet Highlighting Explain
AGENDA Oracle Text Features Schnittstellen Demo auf SQL-Ebene SQL PL/SQL Java, PHP... Schnittstellen im Detail Aufbau einer Suchmaschine Implementierungsbeispiele Suchabfrage Snippet Highlighting Explain Demo Suchmaschine UltraFind Datenbank Version Voraussetzungen Lizenz...
ORACLETEXTFEATURES Integriert in die Datenbank Advanced Feature - Text Management - Text Mining - Document Services - XML Search Development Leistungsfähige Suchalgorithmen - Exact Match - Pattern Matching - Fuzzy Search - Linguistic Methoden - Stoplist - Boolean Combinations - Relevance Ranking
ORACLETEXTPACKAGES Packagename ctx_adm ctx_query ctx_cls ctx_doc ctx_ddl ctx_output ctx_report ctx_thes ctx_ulexer Kurzbeschreibung Package für administrative Aufgaben. Package zum erzeugen von Query Feedback, Stored Query Expressions und zählen von Hits. Package zum ausführen von Document Classifications. Package zur Abfrage von Document Services, bspw. Highlighting, Textextraktion und zur Erstellung von Inhaltsübersichten. Package zur Erstellung und Verwaltung von Präferenzen, Section Groups und Stoplists für Text Indizes. Package für Log- und Debugfunktionen. Package zur Erstellung von Berichten mit Informationen zur Indexerstellung und Abfrage. Package zur Verwaltung und Nutzung von Thesauren (basierend auf den Standard ISO-2788 und ANSI Z39.19). Package zur Nutzung des User-Lexer.
SCHNITTSTELLENINTEGRATION Java C/C++ PHP... JDBC SQL NET SQL API Oracle Text Externe Datenquellen Database & Oracle Text Repository
SCHNITTSTELLENINTEGRATION PL/SQL & Java Java C/C++ PHP... Externer Dateiserver JDBC SQL NET HTML Oracle Text SQL API PL/SQL Java Frameworks TCP/IP NFS SMB HTTP/S FTP XML FILE Database & Oracle Text Repository Lokales Dateisystem
BEISPIELIMPLEMENTIERUNGEN Java C/C++ PHP... PL/SQL-Module JDBC SQL NET SQL API PL/SQL PL/SQL Suchabfrage Oracle Text Java Frameworks PL/SQL Snippet PL/SQL Highlighting Database & Oracle Text Repository PL/SQL Explain
PL/SQL MODULBEISPIEL Suchabfrage FUNCTION doc_search (p_search in VARCHAR2 DEFAULT NULL, p_in_doc_name in VARCHAR2 DEFAULT 'Y', p_in_doc_path in VARCHAR2 DEFAULT 'Y', p_in_doc_data in VARCHAR2 DEFAULT 'Y', p_fuzzy in VARCHAR2 DEFAULT 'N', p_wortstamm in VARCHAR2 DEFAULT 'N', p_wildcard in VARCHAR2 DEFAULT 'Y', p_snippet in VARCHAR2 DEFAULT 'N', p_size_from in NUMBER DEFAULT 1, p_size_to in NUMBER DEFAULT NULL, p_order_by in VARCHAR2 DEFAULT '1 desc,3') RETURN uf_doc_search_tab PIPELINED SELECT * FROM TABLE (uf_sql_interface.doc_search('doag Tilkner')); SELECT * FROM TABLE (uf_sql_interface.doc_search('doag Tilkner','Y','Y','Y','Y'));
PL/SQL MODULBEISPIEL Suchabfrage ORACLE-Funktionen contains() p_fuzzy p_wortstamm SELECT * FROM TABLE ( uf_sql_interface.doc_search('doag Tilkner','Y','Y','Y','Y','Y') ); doc_search get_contains get_doc_statement ((${DOAG} or?{doag}) AND (${Tilkner} or?{tilkner})) SELECT... FROM... WHERE (contains(dateiname,'((?{doag}...',1) > 0 OR contains(verzeichnissname,'((?{doag}...',2) > 0 OR contains(dokumenteinhalt,'((?{doag}...',3) > 0)... Result Set
PL/SQL MODULBEISPIEL Snippet FUNCTION doc_search (p_search in VARCHAR2 DEFAULT NULL, p_in_doc_name in VARCHAR2 DEFAULT 'Y', p_in_doc_path in VARCHAR2 DEFAULT 'Y', p_in_doc_data in VARCHAR2 DEFAULT 'Y', p_fuzzy in VARCHAR2 DEFAULT 'N', p_wortstamm in VARCHAR2 DEFAULT 'N', p_wildcard in VARCHAR2 DEFAULT 'Y', p_snippet in VARCHAR2 DEFAULT 'N', p_size_from in NUMBER DEFAULT 1, p_size_to in NUMBER DEFAULT NULL, p_order_by in VARCHAR2 DEFAULT '1 desc,3') RETURN uf_doc_search_tab PIPELINED; SELECT * FROM TABLE (uf_sql_interface.doc_search('doag Tilkner',p_snippet => 'Y'));
PL/SQL MODULBEISPIEL Snippet ORACLE-Funktionen ctx_doc.snippet() SELECT * FROM TABLE ( uf_sql_interface.doc_search('doag Tilkner',p_snippet => 'Y') ); doc_search get_contains ctx_doc.snippet ((${DOAG} or?{doag}) AND (${Tilkner} or?{tilkner})) ctx_doc.snippet(<index>,'((?{doag}...', '<FONT COLOR=Red>','</FONT>');... text <FONT COLOR=Red>DOAG</FONT> text... Result Set
PL/SQL MODULBEISPIEL Highlight FUNCTION doc_highlight (p_doc_id in NUMBER, p_path_id in NUMBER, p_search in VARCHAR2, p_type in VARCHAR2 DEFAULT 'DOC_DATA', p_starttag in VARCHAR2 DEFAULT '<FONT COLOR=Red>', p_endtag in VARCHAR2 DEFAULT '</FONT>', p_prevtag in VARCHAR2 DEFAULT '<A HREF=#ctx%PREVNUM><<</A>', p_nexttag in VARCHAR2 DEFAULT '<A HREF=#ctx%NEXTNUM>>></A>') RETURN CLOB; SELECT uf_sql_interface.doc_highlight( 10002561, 10000001, '((${DOAG} OR?{DOAG}) AND (${Tilkner} OR?{Tilkner}))' ) FROM DUAL;
PL/SQL MODULBEISPIEL Highlight ORACLE-Funktionen ctx_doc.markup() SELECT uf_sql_interface.doc_highlight( 10002561, 10000001, ) FROM DUAL; '((${DOAG} OR?{DOAG}) AND (${Tilkner} OR?{Tilkner}))'... '<FONT COLOR=Red>', '</FONT>' doc_highlight ctx_doc.markup... text <FONT COLOR=Red>DOAG</FONT> text... Result Set
PL/SQL MODULBEISPIEL Explain FUNCTION doc_explain (p_search in VARCHAR2, p_type_list in VARCHAR2 DEFAULT 'DOC_NAME,DOC_PATH,DOC_DATA') RETURN uf_explain_tab PIPELINED; SELECT * FROM TABLE(uf_sql_interface.doc_explain('DOAK TIlkner'));
PL/SQL MODULBEISPIEL Explain ORACLE-Funktionen ctx_query.explain() ctx_query.count_hints() SELECT * FROM TABLE(uf_sql_interface.doc_explain('DOAK TIlkner')); doc_explain ctx_doc.explain Füllt die Tabelle uf10_explain_words SELECT... FROM uf10_explain_words Auswerten der Tabelle Result Set
ULTRAFINDWORKFLOW Manuell Source anlegen Datei-Katalog anlegen/aktualisieren Manuell oder periodisch Sourcen initialisieren Oracle Text Index synchronisieren Bereit zur Suche
ULTRAFINDTABLES Table: Sources Table: Files Source A Source B... Datei 1 Datei 2 Datei 3 Datei 4...
ULTRAFINDAUFBAU Oracle Webserver mod_plsql OWA Toolkit PL/SQL Database & Oracle Text Repository Java Framework Oracle Text FILES Lokales Dateisystem
Roland Tilgner Solution Architects & Team Coaching Roland Tilgner KG Hauptstr. 88a 31867 Pohle http://roland-tilgner.de/ Vortrag: Roland Tilgner