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

Область применения:SQL ServerAzure SQL Database

Индексирование документа в столбце с типом данных varbinary, varbinary(max), image или xml требует дополнительной обработки. Такая обработка должна выполняться фильтром. Фильтр извлекает из документа текстовые данные (устранение форматирования). Затем фильтр отправляет текст в компонент средства разбиения по словам для языка, связанного со столбцом таблицы.

Фильтры и типы документов

Данный фильтр зависит от типа данных документа (DOC, PDF, XLS, XML и т. д.). Такие фильтры реализуют интерфейс IFilter. Для получения дополнительных сведений об этих типах документов выполните запрос к представлению каталога sys.fulltext_document_types .

Двоичные документы можно хранить в одном столбце varbinary(max) или image . Для каждого документа SQL Server выбирает правильный фильтр на основе расширения файла. Поскольку при сохранении файла в столбце типа varbinary(max) или image его расширение не отображается, расширение файла (DOC, DOCX, 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