Oracle9i全文検索技術
作成者:徐峰
作成日:2004/03/11
説明:
Oracle9i Databaseに高速全文検索機能を付加し、データベースの利用価値を飛躍的に高める機能です。他の全文検索システムとは異なり、Oracle Textの検索エンジンはデータベース・カーネルに組み込まれていますので、高い管理性、信頼性、拡張性、整合性などOracle9i Databaseの持つメリットをそのまま受け継いだシステムの構築が可能です。
また、Microsoft Office文書やPDFファイルからも日本語文字列を抽出して高速検索用のテキスト索引を作成する機能が実装されていますので、普段使用している文書ファイルやプレゼンテーションファイルのすべてでOracle Textの提供する検索機能を利用可能です。
簡単な手順書:
1. 表を作成する
バイナリー・ファイルはBLOBを利用する、テキスト・ファイルはCLOBを利用する。
例:CREATE TABLE docs (id NUMBER PRIMARY KEY, text BLOB)
2. ファイルをロードする
INSERT 文に加え、Oracle では次のような自動化された方法を使用して、ファイル・システムから表にテキスト・データ(ドキュメント、ドキュメントへのポインタおよびURL など)をロードできます。
l SQL*Loader
l BFILE からLOB をロードするためのPL/SQL プロシージャDBMS_LOB.LOADFROMFILE()
l Oracle Call Interface
関連項目:
l DBMS_LOB パッケージの詳細は、『Oracle9i PL/SQL パッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。
l LOB の使用方法の詳細は、『Oracle9i アプリケーション開発者ガイド-ラージ・オブジェクト』を参照してください。
l Oracle Call Interface の詳細は、『Oracle Call Interface プログラマーズ・ガイド』を参照してください。
3. 索引を作成する
テキスト・データを表にロードした後、CREATE INDEX 文を使用してCONTEXT 索引を作成できます。索引の作成時にPARAMETERS 句を指定しないと、索引はデフォルトのパラメーたとえば、次のコマンドによって、docs 表内のtext 列にmyindex というCONTEXT 索引
例:CREATE INDEX myindex ON docs(text) INDEXTYPE IS CTXSYS.CONTEXT;
4. 検索の操作を行う
例:select id from docs where contains (text, ‘検索内容’)
5. 索引のメンテナンス
索引のメンテナンスは、アプリケーションが元表のドキュメントを挿入、更新または削除した後に必要です。索引のメンテナンスには、索引の同期化と最適化が含まれます。