在Sqlite中创建动态FTS4表

时间:2016-02-03 16:20:29

标签: database sqlite fts4

我一直致力于通过使用视图使我的sqlite数据库更具动态性。除了全文搜索表之外,这在所有情况下都有所帮助。根据SQLite FTS4文档(https://www.sqlite.org/fts3.html#section_6_2_2),有一种方法可以在创建全文搜索虚拟表时将表作为内容表引用。不幸的是,用户仍然负责填充和维护虚拟表,这没有多大意义,但它就是这样。

我最初填充fts4表并使其工作的方式是:

  

CREATE VIRTUAL TABLE term_search使用fts4(id,name,origin,content,refs,created);

     

INSERT INTO term_search SELECT id,name,origin,text,refs,from FROM full_text_dict;

这最初运作良好但非动态。

我试图像这样创建'external-content'fs4表:

  

CREATE VIRTUAL TABLE term_search使用fts4(content =“full_text_dict”,名称,来​​源,内容,参考,创建);

     

INSERT INTO term_search(docid,name,origin,content,refs,created)SELECT id,name,origin,text,refs,from FROM full_text_dict;

SQLite允许我这样做,但是当我尝试查询表时,我得到:

  

SELECT * FROM term_search WHERE content MATCH'data';

     

错误:SQL逻辑错误或缺少数据库

当我尝试运行integrity-check命令时,我收到同样的错误:

  

INSERT INTO term_search(term_search)VALUES('integrity-check');

我觉得我错过了一些东西,但无法确定文档中的内容。有任何想法吗?提前谢谢。

编辑:我应该提一下我正在使用的内容表是一个视图。据说它应该仍然可以工作,但我想知道它是否可能是一个错误。

0 个答案:

没有答案