ヘッダーをスキップ
Oracle® Textアプリケーション開発者ガイド
12cリリース1 (12.1)
B71317-04
  目次へ移動
目次
索引へ移動
索引

前
次
 

Oracle Textの索引付け処理

この項では、Oracle Textの索引付け処理について説明します。CREATE INDEX文を使用して索引付け処理を開始し、指定したパラメータとプリファレンスに基づいて、トークンに対してOracle Textの索引を作成します。

図3-1は、索引付け処理を示しています。データは、様々な索引付けオブジェクトによって操作されます。各オブジェクトは、CREATE INDEXまたはALTER INDEXのパラメータ文字列で指定した索引付けプリファレンス型またはセクション・グループにそれぞれ対応しています。

図3-1 Oracle Textの索引付け処理

「図3-1 Oracle Textの索引付け処理」の説明が続きます
「図3-1 Oracle Textの索引付け処理」の説明

Oracle Textは、次のオブジェクトとエンジンを使用してデータ・ストリームを処理します。

データストア・オブジェクト

ストリームはデータストアから始まり、データストアでは、指定したデータストア・プリファレンスに従って、システムに格納されているとおりにドキュメントが読み込まれます。たとえば、データストアをFILE_DATASTOREと定義した場合、ストリームは、オペレーティング・システムからのファイルの読込みで開始されます。ドキュメントは、インターネット上またはOracle Databaseに格納することもできます。ファイルが物理的にどこに存在していても、Oracle Databaseにはそのファイルを指すテキスト表が必要です。

フィルタ・オブジェクト

次に、ストリームはフィルタ内を通過します。フィルタで行われる処理の内容は、指定したFILTERプリファレンスによって決定されます。次のいずれかの処理がストリームに対して行われます。

  • フィルタ処理は行われません。これは、NULL_FILTERプリファレンス型を指定した場合、または形式列の値がIGNOREの場合に発生します。プレーン・テキスト、HTMLまたはXMLのドキュメントには、フィルタ処理は不要です。

  • 形式設定されたドキュメント(バイナリ)は、マークアップされたテキストにフィルタ処理されます。これは、AUTO_FILTERプリファレンス型を指定した場合、または形式列の値がBINARYの場合に発生します。

セクショナ・オブジェクト

フィルタ処理後、マークアップされたテキストはセクショナを通過し、ストリームはテキスト情報とセクション情報に分割されます。セクション情報には、テキスト・ストリーム内でセクションが開始する場所と終了する場所の情報が含まれています。抽出されるセクションのタイプは、セクション・グループのタイプによって決定されます。

セクション情報は、直接索引付けエンジンに渡され、後で使用されます。テキストはレクサーに渡されます。

レクサー・オブジェクト

Oracle Textのレクサー・タイプのいずれかを使用してレクサー・プリファレンスを作成し、索引付けをするテキストの言語を指定します。レクサーは、使用言語に基づいて、テキストをトークンに分解します。通常、分解されたトークンはワードです。レクサーは、トークンの抽出に、レクサー・プリファレンスに定義されたパラメータを使用します。これらのパラメータには、トークンの分割に使用する空白などの文字の定義や、テキストをすべて大文字に変換するか、あるいは大/小文字混合のままで残すかなどの定義が含まれています。

テーマの索引付けが使用可能の場合、レクサーはテキストを分析してテーマ・トークンを作成し、索引付けを行います。

索引付けエンジン

索引付けエンジンは、トークンを含んでいるドキュメントにそのトークンをマップする逆向きの索引を作成します。このフェーズでは、指定したストップリストを使用して索引からストップワードまたはストップテーマを除外します。また、Oracle Textでは、WORDLISTプリファレンスに定義された、プリフィックス索引またはサブストリング索引(使用可能な場合)の作成方法を指定するパラメータも使用されます。