Синтаксическая ошибка около 'of' в режиме полнотекстового поиска 'control of'
У меня есть следующее предложение WHERE
:
WHERE (@Keywords IS NULL
OR (CONTAINS((p.Title, p.Area, p.[Message]), @Keywords))
)
Если @Keywords = 'control'
, запрос выполняется успешно и фильтрует мои записи
Если @Keywords = 'control of'
, я получаю следующую ошибку:
Синтаксическая ошибка около 'of' в режиме полнотекстового поиска 'control of'.
Почему это и что я могу сделать для решения проблемы?
Основная причина, по которой я использую этот метод при использовании условия LIKE
, - это возможность поиска нескольких слов.
Ответы
Ответ 1
Включите ключевые слова в двойных кавычках, если вы хотите точно искать элемент управления
SET @Keywords = '"control of"'
Если вы хотите найти элемент управления и , используйте следующее:
SET @Keywords = 'control AND of'
Но сервер может считать of как мусор или слово-стоп, поэтому в этом случае используйте следующее:
SET @Keywords = 'control AND "of"'