Устранение неполадок с полнотекстовым индексированием

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Устранение неисправностей полного индексирования текста

При заполнении или обслуживании полнотекстового индекса средство полнотекстового индексирования может не проиндексировать одну или несколько строк по причинам, описанным в следующем списке. Эти ошибки на уровне строк не мешают популяции завершить её. Индексатор пропускает эти строки, что означает, что вы не можете делать запросы по содержимому, содержащемуся в этих строках.

Ошибки индексирования могут возникать в следующих случаях.

  • Индексатор не может найти или загрузить фильтр или компонент разбиения слов. Этот сбой может возникнуть, если строка таблицы содержит формат документа или содержимое на языке, не зарегистрированном в экземпляре SQL Server. Эта ошибка также может возникать, если зарегистрированное средство разбиения слов или компонент фильтра не подписаны либо если проверка подписи завершается сбоем во время загрузки компонента. Azure SQL и Управляемый экземпляр SQL Azure не поддерживают сторонние средства разбиения слов.

  • Компонент, такой как прерывающий слова или фильтр, выходит из строя и возвращает ошибку индексатору. Этот сбой может произойти, если индексируемый документ повреждён и фильтр не может извлечь текст из документа. Этот сбой также может возникать, когда компонент не может обработать содержимое одной строки, размер которого превышает определённый предел, из-за ограничений памяти на узле демона фильтра полнотекстового поиска (fdhost.exe).

Подробное описание причин каждой ошибки на уровне строк регистрируется в журнале сканирования. Количество ошибок обобщается в конце полной или инкрементальной популяции.

Другие сбои могут повлиять на процесс индексации и помешать популяции завершить процесс:

  • Индекс полного текста превышает лимит по количеству строк, которые может содержать полнотекстовый каталог.

  • Вы изменяете, удаляете или перестраиваете кластерный индекс или полный текст ключевого индекса в индексируемой таблице.

  • Сбой оборудования или повреждение жесткого диска, вызывающее повреждение полнотекстового каталога.

  • Файловая группа, содержащая таблицу, для которой создан полнотекстовый индекс, переходит в автономный режим или переводится в режим только для чтения.

Изучите журнал сканирования в конце любой значимой операции с полнотекстовым индексом или когда обнаруживаете, что популяция не завершилась.

Компоненты без знака

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

Внимание

Игнорирование проверки подписи делает экземпляр SQL Server менее безопасным. Вы должны подписывать все документы, которые реализуете, или убедиться, что все приобретённые вами компоненты подписаны. Для получения информации о компонентах подписи см. sp_fulltext_service.

Полный текст индекса находится в несогласованном состоянии после восстановления журнала транзакций

При восстановлении журнала транзакций базы данных вы можете увидеть предупреждение, указывающее на то, что полнотекстовый индекс находится в несогласованном состоянии. Это предупреждение появляется потому, что полный текст в таблице был изменён после резервного копирования базы данных. Чтобы привести полнотекстовый индекс в согласованное состояние, необходимо выполнить в таблице полное заполнение (сканирование). Дополнительные сведения см. в разделе Заполнение полнотекстовых индексов.