フルテキスト検索の概要

フルテキスト検索を使用すると、Microsoft SQL Server データベースに格納されたテキスト データに対して、キーワードベースのクエリのインデックスを高速かつ柔軟に作成できます。文字パターンに対してのみ有効な LIKE 述語とは異なり、フルテキスト クエリでは、特定言語のルールに基づいて単語や語句を処理することで、テキスト データに対して言語に基づく検索を実行できます。

Microsoft SQL Server 2005 のフルテキスト検索は、エンタープライズ検索機能を提供します。パフォーマンス、管理性、機能性などが大幅に強化されているため、あらゆるサイズのアプリケーションで強力な検索機能を利用できます。

フルテキスト検索の優れたパフォーマンスを最も実感できるのは、構造化されていない大量のテキスト データに対してクエリを実行する場合でしょう。数百万行のテキスト データに対して LIKE クエリを実行すると、結果が得られるまでに数分かかる場合があります。一方、同じデータに対してフルテキスト クエリを実行すると、返される行数にもよりますが、数秒以内で結果を取得できます。

charvarchar、および nvarchar データを格納する列に対してフルテキスト インデックスを構築できます。また、Microsoft Word ドキュメントなど、フォーマットされたバイナリ データを格納する varbinary(max) 列または image 列に対してもフルテキスト インデックスを構築できます。フォーマットされたバイナリ データには LIKE 述語を使用できません。

フルテキスト インデックスをテーブルに作成するためには、一意で NULL が許容されない列がそのテーブルに 1 つ必要です。たとえば、Adventure Works の Document テーブルについて考えてみましょう。このテーブルでは、DocumentID 列に主キー列が設定されています。フルテキスト インデックスは、DocumentID が 3 の行にある DocumentSummary 列の単語番号 24 と単語番号 44 に "instruction" という単語があることを示しています。このインデックス構造を使用すると、インデックス付けされた単語を含んでいるすべてのアイテムを効率的に検索できるほか、語句の検索、近接検索などの高度な検索ができます。詳細については、「Document テーブル (AdventureWorks)」を参照してください。

フルテキスト クエリを処理する場合、検索エンジンは検索基準を満たす行のキー値を SQL Server に返します。フルテキスト クエリを使用して "instruction" という単語を含むドキュメントを検索する場合、フルテキスト インデックスから取得される DocumentID の値は 3、4、6、7、8 となります。SQL Server はこれらのキーを使用して一致する行を返します。

参照

概念

フルテキスト検索の基礎

その他の技術情報

フルテキスト検索の機能強化
LIKE (Transact-SQL)
フルテキスト検索の概念

ヘルプおよび情報

SQL Server 2005 の参考資料の入手