Я новичок в полнотекстовом поиске SQL Server и пытаюсь найти лучший способ поиска по нескольким словам с помощью флективного механизма, чтобы при поиске использовались различные формы всех слов.
Из того, что я читал, FREETEXT использует неявное ИЛИ при использовании нескольких слов. Я хочу, чтобы результаты поиска содержали все слова, поэтому я предпочитаю использовать CONTAINS.
Я пытаюсь сделать что-то вроде запроса ниже, который использует FORMSOF с ключевым словом NEAR для нескольких слова. Обратите внимание, что это недопустимый синтаксис и возвращает ошибку:
select top 5 *
from content
WHERE CONTAINS((Title,Subtitle,Body), 'FORMSOF(INFLECTIONAL, model NEAR airplane)')
Однако приведенный ниже запрос работает, но я не знаю, дает ли он желаемые результаты. Есть ли разница между «AND» и «NEAR» при полнотекстовом поиске SQL?
select top 5 *
from content
WHERE CONTAINS((Title,Subtitle,Body), 'FORMSOF(INFLECTIONAL, model) AND FORMSOF(INFLECTIONAL, airplane)')
Думаю, я спрашиваю, есть ли способ использовать CONTAINS, FORMSOF, и NEAR с несколькими поисковыми словами? Или мне следует использовать второй запрос выше, в котором используется «И»?