【问题标题】:unable to retrieve special characters from sqlite fts3无法从 sqlite fts3 中检索特殊字符
【发布时间】:2012-02-08 05:21:42
【问题描述】:

我在我的场景中遇到了一些特殊字符的问题。 我有一个使用 fts3 创建的 sqlite 数据库。

当我使用SELECT col_1, col_2, offsets(table) FROM table WHERE table MATCH 'h*' LIMIT 50;

我能够得到以 h 开头的单词。

但是当我使用时

SELECT col_1, col_2, offsets(table) FROM table WHERE table MATCH '@*' LIMIT 50;

我没有得到以@开头的字符串。

我哪里错了?任何有关方法的指针都会很棒。

【问题讨论】:

    标签: android database sqlite fts3


    【解决方案1】:

    我认为您描述的行为发生是因为SQLite FTS3 uses tokenizer called "simple" by default。字符 @ 被丢弃,因为它不是字母数字字符,并且其 UTF 代码点不大于 127。我对此的解释是 FTS 不是用于搜索特殊字符,而是用于搜索自然文本。

    我建议的解决方法是不要对此类查询使用 FTS,而是使用 LIKE 运算符。或者您可以尝试搜索其他可用的标记器或write your on in C

    【讨论】:

    • 非常感谢,虽然我来晚了。
    猜你喜欢
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    • 2016-04-23
    • 2012-09-12
    • 2011-02-15
    • 2014-11-13
    • 1970-01-01
    • 2020-09-08
    相关资源
    最近更新 更多