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


преобразование шумовых слов (параметр конфигурации сервера)

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

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

значение Описание
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)