【问题标题】: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,用户不会提前知道这一点)。

【问题讨论】:

    标签: sqlite full-text-search fts4


    【解决方案1】:

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

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

    改用短语查询:

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

    【讨论】:

    • 我后来发现我可以使用短语查询并且它会起作用,但我不知道为什么。很高兴有答案。谢谢 CL!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 2017-09-20
    • 2015-05-05
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    • 2015-12-30
    相关资源
    最近更新 更多