我正在SQLite 中创建一个FTS4 外部内容表,如下所示:
CREATE TABLE t2(id INTEGER PRIMARY KEY, col_a, col_b, col_text);
CREATE VIRTUAL TABLE fts_table USING fts4(content="t2", col_text);
我正在使用外部内容表,因此我不需要存储col_textin 的重复值fts_table。我只是索引col_text,因为col_a并且col_b不需要索引。
但是,当我进行这样的查询fts_table时
SELECT * FROM fts_table WHERE fts_table MATCH 'something';
我无权访问col_a和访问col_b内容表t2。如何从单个 FTS 查询中返回所有这些列 ( col_a, col_b, )?col_text
更新
我尝试使用该notindexed=column_name选项,如
CREATE VIRTUAL TABLE fts_table USING fts4(content="t2", col_a, col_b, col_text, notindexed=col_a, notindexed=col_b);
这应该适用于某些人,但我在 Android 中使用它,并且notindexed直到 SQLite 3.8 才支持该选项,Android 直到Android 版本 5.x才支持该选项。我需要支持android 4.x。我正在更新这个问题以包含 Android 标签。