Подстановочный знак полнотекстового поиска SQL Server
Посмотрев на этот вопрос SO и проведя собственное исследование, выяснилось, что при использовании полнотекстового поиска у вас не может быть символа подстановки.
Так что в самом простом примере, если у меня есть таблица с 1 столбцом, как показано ниже:
ТАБЛИЦА 1
монета
чеканка монет
undercoin
select COLUMN1 from TABLE1 where COLUMN1 LIKE '%coin%'
Получите мне результаты, которые я хочу.
Как я могу получить точно такие же результаты при включенном ПОЛНОМ ПОИСКЕ ТЕКСТА в столбце?
Следующие два запроса возвращают точно такие же данные, что не совсем то, что я хочу.
SELECT COLUMN1 FROM TABLE1 WHERE CONTAINS(COLUMN1, '"coin*"')
SELECT COLUMN1 FROM TABLE1 WHERE CONTAINS(COLUMN1, '"*coin*"')
1 ответ
Полнотекстовый поиск работает на поиск слов или основ слов. Таким образом, он не находит слово "монета" где-либо в "недолете". То, что вы ищете, это возможность поиска суффиксов с использованием полнотекстового поиска, и это не делает это изначально. Есть несколько хакерских обходных путей, таких как создание обратного индекса и поиск по "nioc".