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