フルテキスト検索フィルタ

varbinary、varbinary(max)、image、または xml データ型列のドキュメントにインデックスを作成するには、追加の処理が必要です。この処理はフィルタによって実行します。フィルタは、ドキュメントから (フォーマットを解除して) 文字情報を抽出します。次に、テーブル列に関連付けられている言語のワード ブレーカ コンポーネントにテキストを送ります。

フィルタは、ドキュメント型 (.doc、.pdf、.xls、.xml など) に固有です。これらのフィルタは IFilter インターフェイスを実装しています。ドキュメント型の一覧を参照するには、sys.fulltext_document_types カタログ ビューに対してクエリを実行してください。

バイナリ ドキュメントは、単一の varbinary(max) 列または image 列に格納できます。各ドキュメントについて、SQL Server はファイル拡張子を基に正しいフィルタを選択します。ファイルが varbinary(max) 列または image 列に格納されている場合にはファイル拡張子が表示されないため、ファイル拡張子 (.doc、.xls、.pdf など) を型列と呼ばれるテーブル内の別の列に格納する必要があります。この型列は、任意の文字ベースのデータ型で、文書ファイルの拡張子 (たとえば Microsoft Word 文書の場合は .doc) を格納します。Adventure Works の Document テーブルでは、Document 列は型 varbinary(max)、型列 FileExtension は型 nvarchar(8) です。このテーブルのスキーマの詳細については、「Document テーブル (AdventureWorks)」を参照してください。

注意注意

フィルタは、実装によっては、親オブジェクトに埋め込まれたオブジェクトを処理できます。ただし、SQL Server では、フィルタが他のオブジェクトへのリンクをたどるように構成されていません。

SQL Server 2008 では、独自の XML フィルタと HTML フィルタがインストールされます。さらに、オペレーティング システムに既にインストールされている Microsoft 専用形式 (.doc、.xdoc、.ppt など) のフィルタもすべて SQL Server によって読み込まれます。SQL Server のインスタンスに現在読み込まれているフィルタを確認するには、次のように sp_help_fulltext_system_components ストアド プロシージャを使用します。

EXEC sp_help_fulltext_system_components 'filter'; 

ただし、Microsoft 形式以外のフィルタを使用するには、事前にこれらのフィルタをサーバー インスタンスに読み込む必要があります。追加のフィルタのインストールの詳細については、「登録されているワード ブレーカおよびフィルタの一覧を変更する方法 (Transact-SQL)」を参照してください。

既存のフルテキスト インデックスの型列を表示するには

変更履歴

変更内容

フィルタのインストールに関する情報を追加しました。