преобразование шумовых слов (параметр конфигурации сервера)
Область применения: 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)