Share via


フルテキスト インデックス

更新 : 2006 年 7 月 17 日

フルテキスト インデックスは、Microsoft Full-Text Engine for SQL Server (MSFTESQL) サービスによって作成および保持される、特殊なトークン ベースの関数インデックスです。フルテキスト インデックスの作成手順は、他のタイプのインデックスの作成手順とは大きく異なります。特定の行に格納された値に基づいて B ツリー構造を作成するのではなく、MSFTESQL は、インデックスを作成するテキストの個々のトークンに基づいて、反転、スタック、および圧縮されたインデックス構造を作成します。

SQL Server 2005 では、フルテキスト インデックスのサイズを制限する要因となるのは、SQL Server のインスタンスが実行されているコンピュータで使用できるメモリ リソースのみです。

フルテキスト インデックスを作成し、保持するプロセスは、インデックス カタログ作成と呼ばれます。Microsoft は次のようなフルテキスト インデックス カタログ作成をサポートしています。

  • すべてのカタログの作成
  • 変更の追跡に基づく作成
  • タイムスタンプに基づく増分作成

すべてのカタログの作成

通常、フルテキスト カタログまたはフルテキスト インデックスを初めて作成するときに実行されます。作成されたインデックスは、変更の追跡または増分作成を使用して保持されます。

フルテキスト カタログのすべてのカタログの作成では、そのカタログが対象とするすべてのテーブル内のすべての行にインデックス エントリが作成されます。テーブルですべてのカタログの作成が要求されると、そのテーブル内のすべての行に対してインデックス エントリが作成されます。

フルテキスト インデックスの作成時にカタログを作成しないようにするには、CREATE FULLTEXT INDEX ステートメントを使用して CHANGE TRACKING OFF オプションを指定し、さらに NO POPULATION を指定する必要があります。この場合、ユーザーが START FULL 句、INCREMENTAL 句、または UPDATE POPULATION 句を指定して ALTER FULLTEXT INDEX コマンドを実行した後でなければ、インデックスは作成されません。

変更の追跡に基づくカタログ作成

SQL Server では、フルテキスト インデックスの作成対象としてセットアップされたテーブルで変更が加えられた行の記録が保持されます。これらの変更はフルテキスト インデックスに反映されます。

変更の追跡を開始するには、CREATE FULLTEXT INDEX ステートメントに WITH CHANGE_TRACKING オプションを指定します。変更の追跡を使用するときには、フルテキスト インデックスに変更をどのように反映するかを指定できます。

ms142575.note(ja-jp,SQL.90).gifメモ :
変更の追跡に基づく作成では、対象のフルテキスト インデックスを最初に作成する必要があります。

フルテキスト インデックスに自動的に変更を反映するには、CREATE FULLTEXT INDEX ステートメントまたは ALTER FULLTEXT INDEX ステートメントに AUTO オプションを指定します。

MANUAL オプションを指定すると、定期的に手動で変更を反映するか、SQL Server エージェントを使用して反映するか、または自分で変更を反映することができます。

ms142575.note(ja-jp,SQL.90).gifメモ :
変更の追跡には若干のオーバーヘッドが伴います。SQL Server で変更を追跡しない場合は、CHANGE TRACKING OFF オプションを使用します。

タイムスタンプに基づく増分作成

増分作成では、前回の作成以降または前回の作成の実行中に追加、削除または変更された行のフルテキスト インデックスが更新されます。増分作成では、インデックスが設定されたテーブルに timestamp データ型の列が存在する必要があります。timestamp 型の列が存在しない場合には、増分作成を実行できません。timestamp 型の列を含んでいないテーブルで増分作成を要求すると、すべてのカタログの作成が実行されます。

前回のカタログ作成後にテーブルのフルテキスト インデックスに影響するようなメタデータの変更があった場合、増分作成の要求はすべてのカタログの作成として実行されます。これには、列、インデックス、またはフルテキスト インデックス定義の変更が含まれます。

作成が終わると、SQL Gatherer は新しい timestamp 型の値を記録します。この値は、SQL Gatherer が認識したtimestamp 型の最大値に等しくなります。今後、増分作成を開始するときには、この値が使用されます。

参照

概念

フルテキスト検索の基礎

その他の技術情報

CREATE FULLTEXT INDEX (Transact-SQL)
ALTER FULLTEXT INDEX (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 7 月 17 日

新しい内容 :
  • フルテキスト インデックスのサイズ制限の要因となるのは、コンピュータで使用できるメモリ リソースのみであることを示す文を追加しました。