検索用フィルターの構成と管理
varbinary
、varbinary(max)
、image
、または xml
データ型列のドキュメントにインデックスを作成するには、追加の処理が必要です。 この処理はフィルターによって実行します。 フィルターは、ドキュメントから (フォーマットを解除して) 文字情報を抽出します。 次に、テーブル列に関連付けられている言語のワード ブレーカー コンポーネントにテキストを送ります。
フィルターは、ドキュメント型 (.doc、.pdf、.xls、.xml など) に固有です。 これらのフィルターは IFilter インターフェイスを実装しています。 ドキュメント型の一覧を参照するには、 sys.fulltext_document_types カタログ ビューに対してクエリを実行してください。
バイナリ ドキュメントは、単一の varbinary(max)
列または image
列に格納できます。 ドキュメントごとに、SQL Serverファイル拡張子に基づいて適切なフィルターを選択します。 ファイル拡張子は、ファイルが または image
列にvarbinary(max)
格納されている場合は表示されないため、ファイル拡張子 (.doc、.xls、.pdfなど) は、型列と呼ばれるテーブル内の別の列に格納する必要があります。 この型列には任意の文字ベースのデータ型を指定でき、Microsoft Word ドキュメントの.docなど、ドキュメント ファイル拡張子が含まれます。 Adventure Works の Document テーブルの Document 列の型 varbinary(max)
は で、型列 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';
ただし、Microsoft 以外の形式にフィルターを使用する前に、それらをサーバー インスタンスに手動で読み込む必要があります。 追加のフィルターのインストールの詳細については、「 登録済みのフィルターおよびワード ブレーカーの表示または変更」を参照してください。
既存のフルテキスト インデックスの型列を表示するには
参照
sys.fulltext_index_columns (Transact-SQL)
FILESTREAM と SQL Server のその他の機能との互換性