SQL содержит не работающий над полнотекстовым индексом с предшествующим *
select top 10 * from table where contains(*,'"abc*"')
работает и возвращает 6 строк
ABCDEF
ABCD
ABCD
ABCDE
ABCDEFGH
АБВГДЕЖ
select top 10 * from table where contains(*,'"*bc*"')
возвращает записи не найдены.
Кто-нибудь знает, как можно заставить работать функцию "*bc*"?
2 ответа
Решение
Ведущий поиск по шаблону исключает использование любого индекса... включая полнотекстовое индексирование.
Так "*bc*"
несовместим с полнотекстовой индексацией... и нетекстовым поиском, таким как LIKE '%bc%'
приведет к полному сканированию таблицы.
Смежные вопросы:
Подстановочный знак полнотекстового поиска SQL Server
Как заставить ведущие полнотекстовые поисковые запросы работать в SQL Server?
Пытаться
select top 10 * from table where contains(*,'%bc%')
или же
select op 10 * from table where COLUMN_NAME LIKE '%bc%'