我已经从这里读过了 FTS4 sqlite MATCH not working 和这里 Full text search example in Android 但它无法解决我的问题。
我有一个外部数据库,我使用sqlite 3版本3.13.0和2个这样的表。
我创建了一个虚拟表:
CREATE VIRTUAL TABLE tb_bank_fts USING fts4 (content="tb_bank",address, typename)
虚拟表创建成功,我可以使用select。
但我无法使用"匹配"用fts4表查询,总是返回null而没有错误。
半个月前,我可以通过"匹配"来查询fts4表。但现在我不能这样做。我不知道为什么。我尝试在Firefox中使用SQlite Manager插件,但同样的问题。
答案 0 :(得分:1)
FTS4模块从不写入内容表,写入内容表不会影响全文索引。用户有责任确保内容表和全文索引一致。
因此,当您将数据插入基表时,您还必须将其插入FTS表中:
INSERT INTO tb_bank_fts(docid, address, typename)
SELECT rowid, address, typename FROM tb_bank;
或简单地说:
INSERT INTO tb_bank_fts(tb_bank_fts) VALUES('rebuild');