検索用フィルターの構成と管理

適用対象:SQL ServerAzure SQL Database

varbinaryvarbinary(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) で、type 列の FileExtension の型は nvarchar(8) です。

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

注意

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

インストールされているフィルター

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

EXEC sp_help_fulltext_system_components 'filter';   

注意

.xlsx のサポートを提供する Office Filter Pack の最新バージョンであっても、SQL Server では完全 Open XML スプレッドシートはサポートされません。 エラーは返されず、SQL Server は完全 Open XML スプレッドシートの内容のインデックス作成を失敗するだけです。

Microsoft 以外のフィルター

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

参照

sys.fulltext_index_columns (Transact-SQL)
FILESTREAM と SQL Server のその他の機能との互換性