フルテキスト検索の管理

フルテキストの管理は、以下に示す 4 つの主な作業に分けることができます。

  • フルテキスト インデックスおよびフルテキスト カタログの作成
  • 既存のフルテキスト インデックスおよびフルテキスト カタログの変更
  • 既存のフルテキスト インデックスおよびフルテキスト カタログの削除
  • インデックス作成のスケジューリングおよび保守

フルテキストの管理は、サーバー、データベース、テーブル、および列の各レベルで行われます。サーバー レベルでは、resource_usage などのサーバー全体に対するプロパティを設定することで、フルテキスト サービスが使用するシステム リソースの量を増加または減少させることができます。データベース レベルでは、Microsoft Full-Text Engine for SQL Server (MSFTESQL) サービスの使用を有効または無効にすることができます。フルテキストが有効なデータベースでは、1 つ以上のフルテキスト カタログに対してメタデータを作成および削除できます。

ms142557.note(ja-jp,SQL.90).gifメモ :
Microsoft SQL Server 2005 では、すべてのデータベースが既定でフルテキストに対応しています。

テーブル レベルでは、テーブルのフルテキスト サポートを有効または無効にすることができます。たとえば、フルテキスト検索のインデックス作成対象となる新たな列を追加して、テーブルのフルテキスト定義が変更された場合は、関連付けられているフルテキスト カタログを再作成して、フルテキスト インデックスと新しいフルテキスト定義を同期する必要があります。列レベルでは、フルテキスト クエリをサポートする列を追加または削除できます。

フルテキスト インデックスおよびフルテキスト カタログの作成に関する注意点

フルテキスト インデックスの作成について知る前に、フルテキスト インデックスと標準の SQL Server インデックスの違いを理解しておくことが重要です。次の表に、両方のインデックスの相違点を示します。

フルテキスト インデックス 標準の SQL Server インデックス

ファイル システムに保存されますが、データベースを通じて管理されます。

そのインデックスを定義したデータベースの管理下で保存されます。

1 つのテーブルに対し、1 つのフルテキスト インデックスしか使用できません。

1 つのテーブルに対し、複数の標準インデックスを使用できます。

フルテキスト インデックスへのデータの追加は作成と呼ばれ、スケジュールによる要求または個別の要求のどちらかを通じて要求できます。または、新規データの追加と共に自動的に行うことができます。

関連するデータが挿入、更新、または削除されたときに、自動的に更新されます。

同じデータベース内で 1 つ以上のフルテキスト カタログにグループ化されます。

グループ化されません。

以上のすべてのレベルで、メタデータと状態情報を取得するための機能を使用できます。

標準の SQL Server インデックスと同様に、フルテキスト インデックスは、関連付けられたテーブルの中でデータが変更されると、自動的に更新されます。または、適切な時間間隔でフルテキスト インデックスを手動で再作成することもできます。ただし、この作業には時間がかかり、リソースを大量に消費します。したがって、通常は非同期処理でインデックスを更新します。非同期処理は、データベースの利用率が低いときにバックグラウンドで実行されます。

変更が少ないテーブル、変更が多いテーブル、または特定の時間帯に頻繁に変更するテーブルなど、同じ更新特性を持つテーブルはグループ化し、同じフルテキスト カタログに割り当てる必要があります。この方法でフルテキスト カタログの作成スケジュールをセットアップすることにより、データベースの利用率が高いときでもデータベース サーバーのリソース使用に大きな影響を及ぼすことなく、フルテキスト インデックスとテーブルの同期が維持されるようになります。

フルテキスト カタログ内のテーブルに対するフルテキスト インデックスの割り当てを立案することは重要です。フルテキスト カタログにテーブルを割り当てる際には、以下のガイドラインを考慮してください。

常に、一意なフルテキスト キーに利用可能な最小の一意なインデックスを選択してください。4 バイトで、整数ベースのインデックスが最適です。これにより、ファイル システム内の Microsoft Search サービスで必要となるリソースが大幅に減少します。主キーが大きい場合 (100 バイト以上)、テーブル内の他の一意なインデックスを選択するか、または他の一意なインデックスを作成して、フルテキスト インデックス用のキーにすることを検討してください。そうしないと、一意なフルテキスト キーのサイズが最大サイズ (900 バイト) を超えた場合、フルテキストの作成を続行できなくなります。

数百万の行を持つテーブルにインデックスを作成しようとしている場合、そのテーブル専用のフルテキスト カタログを割り当ててください。

フルテキスト インデックスを作成するテーブル内の変更量だけではなく、そのテーブルの行数についても考慮してください。変更される行と、最後にフルテキスト インデックスを作成したときにテーブル内に存在した行の総数が数百万行に及ぶ場合は、そのテーブルを専用のフルテキスト カタログに割り当ててください。

参照

概念

フルテキスト インデックス
フルテキスト検索の概要
フルテキスト検索のアーキテクチャ
フルテキスト検索を使用した SQL Server へのクエリ

その他の技術情報

フルテキスト検索の概念

ヘルプおよび情報

SQL Server 2005 の参考資料の入手