Параметр transform noise words
Параметр конфигурации сервера transform noise words подавляет сообщения об ошибках, если из-за фильтрации пропускаемых слов, то есть стоп-слов, логическая операция для полнотекстового запроса не возвращает ни одной строки. Этот параметр полезен в полнотекстовых запросах, использующих предикат 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» AND «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
См. также