如何在全文搜索中匹配三个值/关键字?

Posted

技术标签:

【中文标题】如何在全文搜索中匹配三个值/关键字?【英文标题】:How do I match on three values / keywords in a full text search? 【发布时间】:2014-10-23 16:31:08 【问题描述】:

我正在使用类似于以下的查询:

SELECT id, description 
FROM FullTextTable
WHERE FullTextTable MATCH '1.010 OR 1.01 OR 1.0100'

如果我只使用两个“OR”运算符,查询将按预期返回,但当我尝试使用三个或更多“OR”运算符时,我没有得到任何结果。您将如何使用查询语句来检查三个或更多值中的任何一个?

这是使用Sqlite FTS4标准全文查询语法,相信不支持使用括号改变运算顺序。

我的描述包含任意精度级别的小数,我们的用户不一定会搜索与描述中存储的相同的精度级别(例如,用户可能想要搜索 1.010,但描述实际上是措辞为 1.01 或 1.0100,用户不会提前知道这一点)。

【问题讨论】:

【参考方案1】:

使用默认标记器,句点不是单词的一部分。 您的查询与

相同
... MATCH '1 010 OR 1 01 OR 1 0100'

改用短语查询:

... MATCH '"1.010" OR "1.01" OR "1.0100"'

【讨论】:

我后来发现我可以使用短语查询并且它会起作用,但我不知道为什么。很高兴有答案。谢谢 CL!

以上是关于如何在全文搜索中匹配三个值/关键字?的主要内容,如果未能解决你的问题,请参考以下文章

nodejs + mongodb实现模糊查询与全文搜索

全文本搜索

全文本搜索

mysql全文匹配搜索字串中含圆括号()怎么办?

关于全文搜索elasticsearch中matchQuery和termQuery的区别

全文搜索引擎有那些、