Проблема полнотекстового поиска в SQL Server - PullRequest
2 голосов
/ 16 сентября 2011

У меня проблема с результатами полнотекстового поиска, мне нужно найти строки, которые содержат "спрей" в столбце name и не содержат "мужчин" в столбце description.

select top 10 ftt.RANK, ID, name, description
from mod_product_all_fields
INNER JOIN containstable(mod_product_all_fields,(name),' ("spray") ' )  as ftt
    ON mod_product_all_fields.ID=ftt.[KEY]
INNER JOIN containstable(mod_product_all_fields,(description),' not ("men")   ')  as ftt2
    ON mod_product_all_fields.ID=ftt2.[KEY] 
ORDER BY ftt.RANK DESC 

Этот запрос не выполняется правильно, отладчик показывает, что у меня есть синтаксическая ошибка рядом с "not ('men')".

Если у вас есть решение для моей проблемы, пожалуйста, сообщите мне

Спасибо

1 Ответ

2 голосов
/ 16 сентября 2011

Расширяя мой указатель на предыдущий ответ о том, как искать NOT <a word>, я думаю, что это должно сработать:

select top 10 ftt.RANK, ID, name, description
from mod_product_all_fields
INNER JOIN containstable(mod_product_all_fields,(name),' ("spray") ' )  as ftt
    ON mod_product_all_fields.ID=ftt.[KEY]
LEFT JOIN containstable(mod_product_all_fields,(description),' ("men") ')  as ftt2
    ON mod_product_all_fields.ID=ftt2.[KEY] 
WHERE
    ftt2.KEY IS NULL -- Eliminate matches on "men"
ORDER BY ftt.RANK DESC 
...