SQL Server 2005 — FREETEXTTABLE игнорирует отдельные символы

#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. Это ничего не дает… Я действительно не знаю, куда идти дальше, я в полном тупике!