この項では、Oracle Textの索引付け処理について説明します。CREATE
INDEX
文を使用して索引付け処理を開始し、指定したパラメータとプリファレンスに基づいて、トークンに対してOracle Textの索引を作成します。
図3-1は、索引付け処理を示しています。データは、様々な索引付けオブジェクトによって操作されます。各オブジェクトは、CREATE
INDEX
またはALTER
INDEX
のパラメータ文字列で指定した索引付けプリファレンス型またはセクション・グループにそれぞれ対応しています。
Oracle Textは、次のオブジェクトとエンジンを使用してデータ・ストリームを処理します。
ストリームはデータストアから始まり、データストアでは、指定したデータストア・プリファレンスに従って、システムに格納されているとおりにドキュメントが読み込まれます。たとえば、データストアをFILE_DATASTORE
と定義した場合、ストリームは、オペレーティング・システムからのファイルの読込みで開始されます。ドキュメントは、インターネット上またはOracle Databaseに格納することもできます。ファイルが物理的にどこに存在していても、Oracle Databaseにはそのファイルを指すテキスト表が必要です。
次に、ストリームはフィルタ内を通過します。フィルタで行われる処理の内容は、指定したFILTER
プリファレンスによって決定されます。次のいずれかの処理がストリームに対して行われます。
フィルタ処理後、マークアップされたテキストはセクショナを通過し、ストリームはテキスト情報とセクション情報に分割されます。セクション情報には、テキスト・ストリーム内でセクションが開始する場所と終了する場所の情報が含まれています。抽出されるセクションのタイプは、セクション・グループのタイプによって決定されます。
セクション情報は、直接索引付けエンジンに渡され、後で使用されます。テキストはレクサーに渡されます。
Oracle Textのレクサー・タイプのいずれかを使用してレクサー・プリファレンスを作成し、索引付けをするテキストの言語を指定します。レクサーは、使用言語に基づいて、テキストをトークンに分解します。通常、分解されたトークンはワードです。レクサーは、トークンの抽出に、レクサー・プリファレンスに定義されたパラメータを使用します。これらのパラメータには、トークンの分割に使用する空白などの文字の定義や、テキストをすべて大文字に変換するか、あるいは大/小文字混合のままで残すかなどの定義が含まれています。
テーマの索引付けが使用可能の場合、レクサーはテキストを分析してテーマ・トークンを作成し、索引付けを行います。