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