我SQLite中創建FTS4 external content table這樣返回其他列:如何查詢外部內容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);
我使用的是外部內容表,以便我不t需要在fts_table
中存儲col_text
的重複值。我只索引col_text
,因爲col_a
和col_b
不需要編入索引。
然而,當我做的fts_table
一個這樣的查詢
SELECT * FROM fts_table WHERE fts_table MATCH 'something';
我沒有從內容表t2
訪問col_a
和col_b
。如何從單個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 version 5.x。我需要支持android 4.x.我正在更新此問題以包含Android標記。
這將需要第二次查詢,對不對?我必須爲FTS查詢返回的每一行做到這一點,對嗎?有沒有辦法通過單個查詢來完成此操作(爲了返回包含多行的Android遊標)? – Suragch
啊,我剛剛看到你的編輯。我明白。謝謝。 – Suragch
但是,從其他查詢查詢它不是比只有一個fts查詢更慢? –