#sql #sql-server-2005 #tsql #freetexttable
#sql #sql-server-2005 #tsql #freetexttable
Вопрос:
У меня проблема с выполняемым запросом. По сути, это поиск по таблице книг. В приведенном ниже запросе используется FREETEXTTABLE
команда для ранжирования поиска по автору:
@author = 'lewis c s'
SELECT *
FROM tbl_products
INNER JOIN FREETEXTTABLE(tbl_products, [author], @author, LANGUAGE 'British English') AS key_tbl ON tbl_products.product_id = key_tbl.[key]
WHERE deleted = 0
ORDER BY key_tbl.[rank] DESC, author ASC, title ASC, stl_product_id ASC
Результаты, которые я получаю, сбивают с толку…верхняя строка, возвращаемая автором, называется lewis lewis
и lewis c s
занимает место ниже этого!
Теперь я отредактировал свой noiseENG.txt
, удалил отдельные буквы и перестроил свой полнотекстовый каталог, но я не вижу изменений в своих результатах. Я знаю, что изменение этого файла работает, потому что я добавил его lewis
в список, и он отфильтровал все поисковые запросы с lewis
в столбце author.
Примечание: Если я ищу только ‘c s’, я не получаю результатов, поэтому кажется, что отдельные буквы игнорируются все вместе! Кроме того, все индексированные поля имеют значение British English
.
Кто-нибудь знает, почему FREETEXTTABLE
команда все равно будет отфильтровывать отдельные буквы?
Ответ №1:
Попробуйте поиск по фразе в стиле:
@author = '"lewis c s"'
Комментарии:
1. Это ничего не дает… Я действительно не знаю, куда идти дальше, я в полном тупике!