Предположим, у нас есть таблица с полнотекстовым полем. Это поле называется text
. Содержание таблицы будет:
car wash
car and wash
Слово and
в моем stoplist
Теперь я буду запрашивать эту таблицу, используя этот sql:
select * from mytable
where contains(text, '"car wash"')
Этот запрос возвращает только строку car wash
, а не строку car and wash
. Предполагая, что слово and
является стоп-словом, почему Sql не возвращает строку car and wash
?
Я знаю, что я выполняю поиск по фразе (используя ""). Это именно то, что мне нужно, но я думаю, что Sql должен игнорировать слова в стоп-листе, а это не то, что происходит. Это сводит меня с ума.
Насколько я понимаю, когда алгоритм FT находит фразу типа car and wash
, он будет индексировать только car
и wash
. Это правда?
Также, когда я запрашиваю ft_parser
, он говорит, что я ожидал, что он скажет:
SELECT * FROM sys.dm_fts_parser ('"car and wash"', 1033, 5, 0)
special_term display_term
Exact Match car
Noise Word and
Exact Match wash
Есть мысли?