Oracle TEXT 10g Release 1 New Features Edwin Balthes Oracle Support Services Oracle Deutschland GmbH AGENDA Multilingualer Lexer Multipart Mime Filtering Query Log Analyse – neues Package Progressive Relaxation JDeveloper wizards for text search Near Accum Ctx_Report XML Output ALTER INDEX rebuild replace metadata Text 10g Release 1 Globalisierung • Unicode Lexer Erweiterung • Japanische Sprachunterstützung • Neue Deutsche Rechtschreibung Text 10g Release 1 Unicode Lexer • Neue Lexer Präferenz – World_Lexer • Support für jede Unicode 4.0 Sprache Text 10g Release 1 Japanische Sprachunterstützung • • • • • Delimiter characters Fuzzy Funktion für das Japanische Japanisches Stemming Japanischer Unicode Japanisches Benutzer Lexikon Text 10g Release 1 Neue Deutsche Rechtschreibung • Alte Schreibweise • Neue Schreibweise Alte Rechtschreibung Neue Rechtschreibung Potential Potenzial Katarrh Katarr, Katarrh Delphin Delfin Erdgeschoß Erdgeschoss Schiffahrt Schifffahrt Weh tun Wehtun Irgend etwas Irgendetwas Soviel So viel Text 10g Release 1 Query Template - Erweiterungen • • • • • Query Rewrite Progressive Relaxation Spezifikation - Query Language Alternatives Scoring Alternative Grammatik <query>…..</query> Text 10g Release 1 Query Rewrite Text 10g Release 1 Beispiel - Query Rewrite SELECT * FROM purchaseorders WHERE CONTAINS (text,’<query> <textquery lang="ENGLISH" grammar="CONTEXT"> Retail Sales <progression> <seq><rewrite>transform((TOKENS, "{", "}", " "))</rewrite></seq> <seq><rewrite>transform((TOKENS, "{", "}", " ; "))</rewrite>/seq> <seq><rewrite>transform((TOKENS, "{", "}", "AND"))</rewrite></seq> <seq><rewrite>transform((TOKENS, "{", "}", "ACCUM"))</rewrite></seq> </progression> </textquery> <score datatype="INTEGER" algorithm="COUNT"/> </query>’)>0; Text 10g Release 1 NEAR_ACCUMulate NEAR_ACCUM((word1, word2,..., wordn) [, max_span [, order]]) Text 10g Release 1 Progressive Relaxation Text 10g Release 1 Progressive Relaxation select * from purchaseorders where CONTAINS (text,'<query> <textquery lang="ENGLISH" grammar="CONTEXT"> Retail Sales <progression> <seq>{Retail} {Sales}</seq> <seq>{Retail} NEAR {Sales}</seq> <seq>{Retail} AND {Sales}</seq> <seq>{Retail} ACCUM {Sales}</seq> </progression> </textquery> <score datatype="INTEGER" algorithm="COUNT"/> </query>')>0; Text 10g Release 1 Query Templates - Erweiterungen Multi_Lexer - Query Language select id from docs where CONTAINS (text, '<query><textquery lang="french">bon soir</textquery></query>')>0; Alternatives Scoring select id from docs where CONTAINS (text, '<query> <textquery grammar="CONTEXT" lang="english"> mustang </textquery> <score datatype="float" algorithm="DEFAULT"/> </query>')>0 Alternative Grammatik select id from docs where CONTAINS (text, '<query> <textquery grammar="CTXCAT">San Diego</textquery> <score datatype="integer"/> </query>')>0; Text 10g Release 1 CTX_REPORT Package • CTX_REPORT.DESCRIBE_INDEX • CTX_REPORT.DESCRIBE_POLICY • CTX_REPORT.CREATE_INDEX_SCRIPT • CTX_REPORT.CREATE_POLICY_SCRIPT • CTX_REPORT.INDEX_SIZE • CTX_REPORT.INDEX_STATS • CTX_REPORT.TOKEN_INFO • CTX_REPORT.QUERY_LOG_SUMMARY • CTX_REPORT.TOKEN_TYPE Text 10g Release 1 CTX_REPORT - Query Log Analyse • Welche Abfragen wurden gemacht ? • Welche Abfragen waren erfolgreich ? • Welche Abfragen waren nicht erfolgreich ? • WAS wurde WIE HÄUFIG angefragt ? Text 10g Release 1 CTX_REPORT - Query Analyse 1. Start query logging 2. End query logging 3. Query log summary Text 10g Release 1 XML Output - CTX_REPORT Package SELECT ctx_report.describe_index('DOCS_TEXT','XML') FROM dual; CTX_REPORT.DESCRIBE_INDEX('DOCS_TEXT','XML') -------------------------------------------------------------------------------<CTXREPORT> <DESCRIBE_INDEX> <INDEX_ATTRIBUTES> <INDEX_ATTRIBUTE NAME="index name"> "CTXSYS"."DOCS_TEXT" </INDEX_ATTRIBUTE> <INDEX_ATTRIBUTE NAME="index id"> 1392 </INDEX_ATTRIBUTE> <INDEX_ATTRIBUTE NAME="index type"> context … Text 10g Release 1 Erweiterungen - Dokumenten Services In 9i wurde für highlight, markup, tokens, filter, gist und markup ein Index benötigt. Dies geht nun in 10g auch ohne einen Index Text 10g Release 1 Alter Index Rebuild Replace Metadata • Ersetzen der existierenden Präferenz-Settings durch neue Präferenz-Settings • betrifft auch die SYNC Parameter • Kein Neuaufbau des Textindexes • ACHTUNG – eigene Verantwortung für einen konsistenten Index Text 10g Release 1 Erweiterungen - Mail Filtering • Konvertieren einer RFC-2045 Email in ein indizierbares Format • Behandlung der Message Bodies basierend auf dem Content-Type • Text Meldungen werden in den DB Characterset konvertiert • Binärer Text wird gefiltert -> INSO • Andere nicht binäre Daten werden nicht ausgegeben • Benutzerdefinierte Felder sind als Sektionen suchbar Text 10g Release 1 Erweiterungen bei der Indizierung • AUTO und ON COMMIT Synchronisierung für CONTEXT Indizes • Transaktionale CONTEXT Indizes • Automatische Multi-Language Indizierung • Unterstützung für Local Partitioned CONTEXT Indizes in parallel • Binäres Filtern für den MULTI_COLUMN_DATASTORE • Neue XML Output Option für Index Reports Text 10g Release 1 Auto und ON COMMIT Synchronisierung DML DML Pending Queue COMMIT Text 10g Release 1 Index Synchronisierung Global Indexes CREATE INDEX <index_name> ON<table_name>(<column_name>) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS('SYNC(MANUAL | ON COMMIT |EVERY "interval_string" MEMORY size PARALLEL degree'); Local Indexes CREATE INDEX index_name ON table_name(column_name) INDEXTYPE IS CTXSYS.CONTEXT LOCAL(PARTITION part_name1 PARAMETERS(' SYNC(MANUAL |ON COMMIT |EVERY "interval_string" MEMORY size PARALLEL degree'), PARTITION part_name2 PARAMETERS('...'),...) PARAMETERS('...'); Text 10g Release 1 Views - Synchronisierung CTX_USER_INDEXES CTX_INDEXES CTX_INDEX_PARTITIONS CTX_USER_INDEX_PARTITIONS Text 10g Release 1 Transaktionale CONTEXT Indizes SELECT… CONTAINS( …) DML Text 10g Release 1 CTXXPATH - Erweiterungen • Indizierung von Number und Unterstüzung von numerischen Range Searches • Attribute Existence • Positional Predicate. Text 10g Release 1 INPATH and HASPATH Erweiterungen • Highlighting mit • INPATH • HASPATH Text 10g Release 1 Änderung der Rechte für CTXSYS DBA Privilege Text 10g Release 1 JDeveloper TEXT Wizards •Text Wizard •Classification Wizard •Catalog Wizard Text 10g Release 1 Text Wizard Demo Text 10g Release 1 Text Wizard Demo Text 10g Release 1 Text Wizard Demo Text 10g Release 1 Text Wizard Demo Text 10g Release 1 Text Wizard Demo Text 10g Release 1 Text Wizard Demo Text 10g Release 1 Text Wizard Demo Text 10g Release 1 Text Wizard Demo Text 10g Release 1 Text Wizard Demo Text – Simple Search Text – Advanced Search Text – Knowledge Base Oracle Ultra Search Out-of-the-Box search engine – Basiert auf Oracle Text Suche über intranet/extranet sources – Web, Databases, Files, Mail Servers, Repositories Verfügt über Web style interface und Java API für UserInterface Wird mit 9i Database, 9iAS/Portal, Collab. Suite R2/3 ausgeliefert Ultra Search Ultra Search Adv. Search Collab Suite Search App. Ultra Search Architecture Web Browser Ultra Search Client Web Server Query & Admin Capabilities Ultra Search Mid-Tier Component Crawler Crawler Crawler Oracle Text SQL Engine Crawler Ultra Search Server Crawled Search Architecture Client Mid-tier Search App. Ultra Search Search Repository Mail Crawlet Mail Files Crawlet Calendar Crawlet Meeting Crawlet Files Calendar Meeting Oracle Confidential Web Crawler Caching Documents WK$DOCUMENT Indexing Documents Gathering URLs Federated Search Architecture Client Search App. Mid-tier Search Federator UltraSearch Mail Searchlet Mail Files Searchlet Calendar Searchlet Web Meeting Searchlet Searchlet Files Calendar Meeting Search Repository Oracle Confidential Google Integrated Search Architecture Client Collab. Suite Search App. Crawled Search Portal Crawlet Database Crawlet Mail Searchlet Portal Database Mail Ultra Search Repository Search Federator Mid-tier 3rd-party Sources Files Searchlet Calendar Searchlet Meeting Searchlet Files Calendar Meeting Web Searchlet Google Java Query API New Feature Areas Security Federated Search Neue repositories (Documentum, Lotus/Notes) Classification/Clustering Advanced Security Authentifizierung mit SSO Ultra Search repository unterstützt ACLs für crawled Dokumente –OID Integration für die group Info. –Benutzereingeschränkte Suche nach was erlaubt ist –Crawlet für (document, ACL) Paare Nur mit Extensible Crawler repositories HTTPS, Digest Authentication support Federated Search Client Mid-tier Search Federator 3rd-party Sources Crawled Search Portal Crawlet Database Crawlet Mail Searchlet Portal Database Mail Ultra Search Repository Files Searchlet Calendar Searchlet Meeting Searchlet Files Calendar Meeting Web Searchlet Google g New 10 Multimedia Features Standards Support – SQL/MM Still Image New version of Java Advanced Imaging and additional image processing operators Support for additional media formats –Microsoft ASF, MPEG2 & MPEG4 •Microsoft Windows Media Server Plugin •Real Server Plugin for Helix Server •XML DB integration Standards Support g Oracle10 supports the first edition of the ISO/IEC 13249-5:2001 SQL/MM Part 5: Still Image Standard. The standard defines object relational types for images and image characteristics. Each object type includes attributes, methods, and associated SQL functions and procedures. Java Advanced Imaging Support for JAI 1.1.1_01, the newest version of the SUN Open Standard for Image Processing Additional image processing operators –Arbitrary –Flip Image Rotate & Mirror –Page extract from a multi page TIFF file –Contrast Enhancement –Quantize algorithm –Gamma Correction Microsoft ASF & Windows Media Server Advanced System Format has become a popular streaming media format on the web –Oracle10 g Database can parse ASF file format metadata Windows Media Server –An Oracle developed plugin for the Microsoft Windows Media that enables it to stream ASF audio/video files stored in Oracle10g Database –Analogous to the existing Oracle9i Database support for Real Networks streaming server Available through OTN FRAGEN ???