У меня есть таблица, в которой у меня есть столбец типа nvarchar. Таблица может расти, чтобы иметь довольно большое количество записей. Поиск может выполняться в этом конкретном столбце, так что для какой-либо записи в графическом интерфейсе реализована процедура хранения всех совпадений. В этой sp-логике, которая проверяет соответствие строк, используется LIKE% added_phrase% в этом конкретном столбце. Теперь, поскольку это может быть довольно неэффективным, я хотел использовать полнотекстовый поиск для этого конкретного столбца.Полнотекстовый поиск по одному столбцу в таблице
CREATE UNIQUE INDEX ui_MyId ON MyTable(Id);
CREATE FULLTEXT CATALOG ft_mycatalog AS DEFAULT;
CREATE FULLTEXT INDEX ON MyTable(MyColumn)
KEY INDEX ui_MyId
WITH STOPLIST = SYSTEM;
Однако, когда я выполняю:
select * FROM MyTable
WHERE CONTAINS(MyColumn, 'some_term')
записи не возвращаются. Что я делаю неправильно? (То же самое и с LIKE, конечно, работает)
Id MyColumn
1 12345some_termwsdjf4sd
2 sdfsjdsfsdfsdfsdsome_term5dgd
3 4l00lko0dfsdfsome_term
Так он должен вернуть все 3 записи. Конечно, в этой таблице больше столбцов, но теперь они неактуальны.
Не могли бы вы уточнить название столбца? («MyColumn» vs «Value») –
Вы создали индекс по столбцу MyColumn и выполните поиск по столбцу. Значение – Backs
А, это очерк, значение - это имя MyColumn, поэтому да: SELECT * FROM MyTable ГДЕ СОДЕРЖИТ (MyColumn, 'some_term') – bojanaborkovic