適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
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) で、type 列の FileExtension の型は nvarchar(8) です。
既存のフルテキスト インデックスの型列を表示するには
注
フィルターは、実装によっては、親オブジェクトに埋め込まれたオブジェクトを処理できます。 ただし、SQL Server では、フィルターが他のオブジェクトへのリンクをたどるように構成されていません。
インストールされているフィルターを表示する
インスタンスに登録されているドキュメントの種類とフィルターを確認するには、次のいずれかの方法を使用します。
sys.fulltext_document_types カタログ ビューに対してクエリを実行します。
SELECT * FROM sys.fulltext_document_types;sp_help_fulltext_system_components ストアド プロシージャを実行します。
EXEC sp_help_fulltext_system_components 'filter';
既定のフィルター
SQL Server がインストールする既定のフィルターは、フルテキスト コンポーネントのバージョンによって決まります。
バージョン 1 (SQL Server 2022 (16.x) 以前): 組み込みフィルターはプレーン テキスト、HTML、および XML ドキュメントを対象としています。 Microsoft Officeおよびその他のドキュメント形式のインデックスを作成するには、オペレーティング システムに既にインストールされているフィルターを使用できます。 Microsoft Office 2010 フィルター パックやその他のMicrosoft以外のフィルターなど、追加のフィルターをインストールすることもできます。 詳細については、「 バージョン 1 のフィルターとワード ブレーカーをカスタマイズする」を参照してください。
バージョン 2 (SQL Server 2025 (17.x) 以降): 組み込みのフィルターでは、HTML と XML に加えて、Microsoft Office、OpenDocument、OneNote、およびOutlookドキュメントが含まれています。 詳細については、「 バージョン 2 のフィルターとワード ブレーカーのカスタマイズ」を参照してください。
各バージョンで処理されるフィルター バイナリとファイル拡張子の完全な一覧については、「 フルテキスト フィルター バイナリ」を参照してください。
注
.xlsxサポートを提供する最新バージョンの Office フィルター パックでも、SQL Serverは Strict Open XML スプレッドシートをサポートしていません。 エラーは返されません。SQL Serverは、厳密な Open XML スプレッドシートの内容のインデックスを作成できません。