我正在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_text
in 的重复值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 标签。