- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 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”的第二个查询?
最佳答案
来自文档:
<proximity_term> ::=
{ <simple_term> | <prefix_term> }
{ { NEAR | ~ }
{ <simple_term> | <prefix_term> }
} [ ...n ]
这意味着您可以对(可能有前缀的)单词、短语及其组合使用 NEAR
谓词。
由于您的搜索词是使用非常简单的规则进行变形的,因此您可以只使用前缀:
SELECT *
FROM content
WHERE CONTAINS((Title,Subtitle,Body), 'model* NEAR airplane*')
或使用AND
并在客户端进行精细过滤
SELECT *
FROM ft
WHERE CONTAINS((Title,Subtitle,Body), 'FORMSOF(INFLECTIONAL, "model") AND FORMSOF(INFLECTIONAL, "airplane")')
关于sql-server - SQL Server 全文搜索使用 CONTAINS、FORMSOF、NEAR 进行多个搜索词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4726627/
我想搜索一些带有停用词的短语,例如“Line Through Crack”。 “通过”是停止词。我想得到与查询相同的结果 CONTAINS(*, 'FORMSOF(INFLECTIONAL, "Lin
我是 SQL Server 全文搜索的新手,正在尝试找出使用屈折引擎搜索多个单词的最佳方法,以便搜索使用所有单词的各种形式。 据我所知,FREETEXT 在与多个单词一起使用时使用隐式 OR。我想要一
我很震惊。 当我在 SQL Server 中看到查询非常容易时,我花了 3-4 天的时间弄清楚如何在 mysql 中实现词干提取(和同义词搜索): Select * from tab where CO
我是一名优秀的程序员,十分优秀!