我需要将FTS添加到现有数据库。外部内容FTS4附加数据库中的表格
开始测试外部内容FTS表,其中FTS索引驻留在默认(主)数据库中。除了一些事情(如索引重建)可能需要相当长的时间以外,一切都运行良好。
然后我读到了将FTS索引放入附加数据库的可能性。这似乎有许多好处,因此我决定尝试一下。但是,我所有的试验都失败了。下面是几个例子:
形势
我们有一个表“账户”用文本列“代码”,并
要创建FTS索引的列和将其放入单独的数据库文件
Test1的)错误: “” 附近:语法错误
ATTACH 'ZipFts.sdf' AS ZipFts; CREATE VIRTUAL TABLE ZipFts.account USING fts4(content=account, code);
INSERT INTO ZipFts.account(ZipFts.account) VALUES('rebuild');
试验2)ERROR:堆栈溢出(源码发动机内无限递归)
ATTACH 'ZipFts.sdf' AS ZipFts; CREATE VIRTUAL TABLE ZipFts.account USING fts4(content=account, code);
INSERT INTO ZipFts.account(account) VALUES('rebuild');
Test3的)错误:没有这样的表:ZipFts.account
ATTACH 'ZipFts.sdf' AS ZipFts; CREATE VIRTUAL TABLE ZipFts.ZipFts_account USING fts4(content="account", code);
INSERT INTO ZipFts_account(ZipFts_account) VALUES('rebuild');
Test4)错误:没有这样的表格:ZipFts.main.account
ATTACH 'ZipFts.sdf' AS ZipFts; CREATE VIRTUAL TABLE ZipFts.ZipFts_account USING fts4(content="main.account", code);
INSERT INTO ZipFts_account(ZipFts_account) VALUES('rebuild');
有人知道这些东西是如何工作的吗?提前致谢。
@我认为这是设计的:如果是这样,文档应该纠正。 – 2013-04-24 14:53:52
@外部内容表可能会改变...:不确定你的意思是哪个改变,但实际上FTS索引和内容表之间只有很弱的耦合,即使它们放在同一个数据库中。 – 2013-04-24 14:55:26
@contentless FTS表:没有测试这种索引类型,因为它对我来说看起来没用。例如,不能使用触发器来保持FTS索引是最新的。 – 2013-04-24 14:58:53