DB2 Net Search Extender の機能を十分に理解するには、 このセクションで太字で示されている主要な用語、 および使用可能なさまざまなオプションを理解する必要があります。 DB2 Universal Database の概念および用語の基礎的な理解も必要です。
基本的に、DB2 Net Search Extender は、 データベース表の列に含まれているテキスト文書の検索を行います。
テキスト文書は、一意に識別可能でなければなりません。 この目的のために、Net Search Extender は表の主キーを使用します。
文書は、HTML や XML などさまざまな形式をとることができます。
膨大な時間を必要とするテキスト文書の順次検索の代わり に、Net Search Extender は、文書の検索を可能にするテキスト索引を作成します。
テキスト索引は、テキスト文書から抽出された重要な用語で構成されます。
テキスト索引作成は、 索引のロケーションのような、索引のプロパティーの定義および宣言を行う処理です。 作成後、テキスト索引にはデータは含まれていません。 索引更新は、テキスト索引にデータを追加する処理です。 最初の索引更新で、テキスト列のすべてのテキスト文書が索引に追加されます。 これは、初期更新と呼ばれます。
検索にテキスト索引を使用することによって、 表とテキスト索引との間の同期を考慮する必要がでてきます。 理由は、テキスト文書の追加、削除、 および更新などの表に対する後からの変更が、 テキスト索引に反映される必要があるためです。
Net Search Extender での同期処理は、新規の文書、 変更や削除された文書に関する情報を自動的にログ表に保管するトリガーに基づいて行われます。 それぞれのテキスト索引ごとに 1 つのログ表が存在します。 ログ表の内容を対応するテキスト索引に適用することをインクリメンタル更新と呼びます。
手動または自動オプションを使用して、 テキスト索引を更新できます。 自動オプションは、日付および時刻を設定する更新スケジュールを使用します。
これらのどちらのオプションを使用しても、 テキスト文書の更新、削除、および挿入を行うトランザクションの範囲内で、 テキスト索引が同期化されることはありません。 Net Search Extender の非同期テキスト索引作成を使用すると、 パフォーマンスおよび並行性が向上します。 別々のトランザクション内で、 索引の非常に小さな部分のコピーに対して更新が行われます。 オリジナルに代わってコピーが置かれる非常に短い間だけ、 索引に読み取りアクセスのロックがかけられるに過ぎません。 検索操作ではこのことは 意識されません。詳しくは、Net Search Extender インスタンス・サービスを参照してください。
テキスト索引は、索引ファイルのロケーションおよび自動更新プロパティーなどの、 特定のプロパティーをもっています。 必要なら、プロパティーの一部を変更できます。 これは索引の変更と呼ばれます。
そのようなプロパティーの 1 つに、ORDER BY 句で表の列のテキスト索引を事前ソートするかどうかというものがあります。 このような場合、初期更新を行うと、指定した順序でテキスト文書に索引が付けられて、 検索結果がこの順序で戻されます。
たとえば、事前ソートされた本を指定すると、本の価格に応じて抽出が行われます。 リレーショナル・データベース・システムに関する本で一番安いものを探す場合は、 テキスト検索を制限して一番安い最初の数冊の本だけを戻すようにすることができます。 ただし、事前ソートされた索引がないと、すべての本を検索し、 これらの本と一番安い本とを結合する必要があります。 この場合は、操作に多くの時間がかかります。
Net Search Extender では、テキスト列ごとに事前ソート済み索引を複数もつことができます。 たとえば、1 つ目の索引で、出版の日付に従って本の事前ソートを行い、 2 つ目の索引で、価格に従って本の事前ソートを行うことができます。
通常、テキスト索引を作成した後の最初の更新が初期更新になり、 それ以降はインクリメンタル更新になります。 ただし、事前ソート済み索引を使用して作業を行う場合は、 更新の際に順序を維持する必要があります。 Recreate Index on Update オプションを使用すると、 この処理を行うことができます。 このオプションでは、更新が行われるたびに索引がすべて再作成されます。
テキスト索引の更新が終わると、以下のいずれかのオプションを使用して、 検索を行うことができます。
検索オプションにはいろいろな操作特性があります。 以下のセクションでこれらのオプションを説明します。