我是 SQL Server 全文搜索的新手,并试图找出使用屈折引擎搜索多个单词的最佳方法,以便搜索使用所有单词的各种形式。
根据我的阅读,FREETEXT 在与多个单词一起使用时使用隐式 OR。我想要一个 AND 以便搜索结果包含所有单词,因此我选择使用 CONTAINS。
我正在尝试执行类似下面的查询,它使用 FORMSOF 和邻近关键字 NEAR 来表示多个单词。请注意,这是无效的语法并返回错误:
select top 5 *
from content
WHERE CONTAINS((Title,Subtitle,Body), 'FORMSOF(INFLECTIONAL, model NEAR airplane)')
但是,下面的查询有效,但我不知道它是否给出了预期的结果。SQL全文搜索的“AND”和“NEAR”之间有区别吗?
select top 5 *
from content
WHERE CONTAINS((Title,Subtitle,Body), 'FORMSOF(INFLECTIONAL, model) AND FORMSOF(INFLECTIONAL, airplane)')
我想我要问的是,有没有办法将 CONTAINS、FORMSOF 和 NEAR 与多个搜索词一起使用?还是我应该只使用上面使用“AND”的第二个查询?