Настройка поисковых фильтров и управление ими

Применимо к:база данных SQL ServerAzure SQL

Индексирование документа в столбце с типом данных 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 и т. д.) должно храниться в отдельном столбце таблицы, называемом столбцом типа. Этот столбец может иметь любой тип данных на основе символов и содержать расширение файла документа, например .doc для документа Microsoft Word. В таблице Document в Adventure Works столбец Document имеет тип varbinary(max), а столбец типа FileExtension — тип nvarchar(8).

Просмотр столбца типов в существующем полнотекстовом индексе

Примечание

Фильтр может быть способен обрабатывать объекты, внедренные в родительский объект, в зависимости от его реализации. Однако SQL Server не настраивает фильтры для переходов по ссылкам на другие объекты.

Установленные фильтры

SQL Server устанавливает собственные фильтры XML и HTML. Кроме того, все фильтры для собственных форматов Майкрософт (.doc, XDOC, .ppt и т. д.), которые уже установлены в операционной системе, также загружаются SQL Server. Чтобы определить фильтры, загруженные в данный момент в экземпляре SQL Server, используйте sp_help_fulltext_system_components хранимую процедуру следующим образом:

EXEC sp_help_fulltext_system_components 'filter';   

Примечание

Даже при использовании последней версии пакета фильтра Office, включающей поддержку файлов XLSX, SQL Server не поддерживает электронные таблицы в строгом формате Open XML. Ошибка не возвращается. SQL Server просто не удается проиндексировать содержимое электронных таблиц в строгом формате Open XML.

Фильтры сторонних разработчиков

Однако прежде чем использовать фильтры для форматов, отличных от Майкрософт, необходимо вручную загрузить их в экземпляр сервера. Сведения об установке дополнительных фильтров см. в статье Просмотр или изменение зарегистрированных фильтров и разделителей слов.

См. также

sys.fulltext_index_columns (Transact-SQL)
Совместимость FILESTREAM с другими компонентами SQL Server