Полнотекстовый поиск SQL Server с использованием CONTAINS, FORMSOF, NEAR для нескольких слов поиска

Я новичок в полнотекстовом поиске 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 с несколькими поисковыми словами? Или мне следует использовать второй запрос выше, в котором используется «И»?

7
задан n3wton23 18 January 2011 в 17:02
поделиться