Поделиться через


Параметр конфигурации сервера «transform noise words»

transform noise words Используйте параметр конфигурации сервера, чтобы подавить сообщение об ошибке, если шумные слова, т. е. стоп-слова, приводят к тому, что логическая операция в полнотекстовом запросе возвращает ноль строк. Этот параметр удобно использовать в полнотекстовых запросах с предикатом CONTAINS, в котором логические операции или операции NEAR содержат пропускаемые слова. Возможные значения описаны в следующей таблице.

Значение Описание
0 Пропускаемые слова (или стоп-слова) не преобразуются. Если полнотекстовый запрос содержит стоп-слова, то запрос возвращает 0 строк, а SQL Server выдает предупреждение. Это поведение по умолчанию.

Обратите внимание, что это предупреждение является предупреждением во время выполнения. поэтому, если полнотекстовое предложение в запросе не выполняется, предупреждение не выдается. Для локального запроса предупреждение возвращается только при наличии в нем нескольких полнотекстовых предложений. Для удаленного запроса связанный сервер может не передать ошибку, поэтому сообщение может не отобразиться.
1 Пропускаемые слова (или стоп-слова) преобразуются. Они пропускаются, а остальная часть запроса обрабатывается.

Если пропускаемые слова встречаются в предложениях, обозначающих расстояние, SQL Server удаляет их. Например, пропускаемое слово is удаляется из фразы CONTAINS(<column_name>, 'NEAR (hello,is,goodbye)'), в результате чего поисковый запрос преобразуется в CONTAINS(<column_name>, 'NEAR(hello,goodbye)'). Обратите внимание, что запрос CONTAINS(<column_name>, 'NEAR(hello,is)') будет преобразован просто в CONTAINS(<column_name>, hello) , поскольку там всего одно допустимое слово поиска.

Действие настройки transform noise words

В этом разделе проиллюстрировано поведение запросов с пропускаемым словом «the» при другой настройке параметра transform noise words. Предполагается обработка образцов строк полнотекстовых запросов по строке таблицы со следующими данными: [1, "The black cat"].

Примечание

Все подобные сценарии могут выдавать предупреждение о пропускаемых словах.

  • Если значение параметра transform noise words — 0:

    Строка запроса Результат
    «cat» AND «the» Нет результатов (поведение аналогично «"the" AND "cat"».)
    «cat» NEAR «the» Нет результатов (поведение аналогично «"the" NEAR "cat"».)
    «the» AND NOT «black» Нет результатов
    «black» AND NOT «the» Нет результатов
  • Если значение параметра transform noise words — 1:

    Строка запроса Результат
    «cat» AND «the» Попадание для строки с идентификатором 1
    «cat» NEAR «the» Попадание для строки с идентификатором 1
    «the» AND NOT «black» Нет результатов
    «black» AND NOT «the» Попадание для строки с идентификатором 1

Пример

В данном примере параметр transform noise words имеет значение 1.

sp_configure 'show advanced options', 1;  
RECONFIGURE;  
GO  
sp_configure 'transform noise words', 1;  
RECONFIGURE;  
GO  

См. также:

Параметры конфигурации сервера (SQL Server)
CONTAINS (Transact-SQL)