Поиск части слова во фразе с полнотекстовым поиском в SQL Server 2016 - PullRequest
0 голосов
/ 16 февраля 2020

На сервере Microsoft SQL наши поиски ограничиваются начальными словами, когда мы используем полнотекстовый поиск для поиска значений. То есть, мы не можем искать, содержит слово, похожее на оператор LIKE в середине.

Я пытаюсь выполнить этот запрос, но результат не мое мнение.

Я хочу найти на середину срока. Например, если мой термин «Microsoft» и мой запрос:

SELECT * 
FROM dbo.SMS_Outbox 
WHERE CONTAINS(MessageText, N'"*soft*"')  

Результат не возвращается!

1 Ответ

0 голосов
/ 16 февраля 2020

В документации совершенно ясно, что подстановочные знаки разрешены только в конце поисковых терминов:

Предикат CONTAINS поддерживает использование звездочки (*) в качестве подстановочного знака символ для представления слов и фраз. Вы можете добавить звездочку только в конце слова или фразы. Наличие звездочки включает режим сопоставления префиксов. В этом режиме совпадения возвращаются, если в столбце содержится указанное поисковое слово, за которым следует ноль или более других символов.

Вы не можете легко делать то, что хотите. Один простой вариант - переключиться на LIKE и получить удар по производительности:

WHERE MessageText LIKE N'%soft%'

Другой вариант - проанализировать текст таким образом, чтобы soft всегда находился в начале поискового запроса. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...