Tag: 全文搜索

使用SQLite FTS4进行自动OR查询

我有一个SQLite FTS4数据库,我希望能够通过用户输入对它进行OR查询,例如,如果用户输入“你好那里”,我想做 SELECT * FROM fts_table WHERE text MATCHES ‘hello OR there’. 但是,如果我传递简单地传入用户字符串,我会得到一个隐式的AND查询。 我当然可以自己标记字符串,并插入OR,但后来我使用自己的tokenizer,它可能与SQLite的FTS内部使用的tokenizer不同。 有没有办法从我的C包装器访问SQLite标记生成器,或者构建执行此操作的SQL查询,方法如下: SELECT * FROM fts_table WHERE text MATCHES interpolate(‘hello there’, ‘ OR ‘) 谢谢任何指针将不胜感激。 编辑: 这个问题的任何未来读者都应该注意另一个问题: 如何为SQLite FTS查询转义字符串,只是在字符串中插入OR是不安全的,因为你经常会得到无效的字符串,例如,如果用户输入hello AND there插值OR将创建无效的hello OR AND OR there这是无效的。 所以