Подстановочный знак полнотекстового поиска 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".

Другие вопросы по тегам