Wie eine externe Inhalts-FTS4-Tabelle abgefragt wird, aber zusätzliche Spalten aus der ursprünglichen Inhalts-Tabelle zurückgegeben werden
Ich erstelle ein FTS4 externe Inhaltstabelle in SQLite wie folgt:
CREATE TABLE t2(id INTEGER PRIMARY KEY, col_a, col_b, col_text);
CREATE VIRTUAL TABLE fts_table USING fts4(content="t2", col_text);
Ich verwende eine externe Inhaltstabelle, damit ich keine doppelten Werte von @ speichern muscol_text
imfts_table
. Ich indiziere nurcol_text
weilcol_a
undcol_b
muss nicht indiziert werden.
Allerdings, wenn ich eine Abfrage vonfts_table
so wa
SELECT * FROM fts_table WHERE fts_table MATCH 'something';
Ich habe keinen Zugriff aufcol_a
undcol_b
aus der Inhaltstabellet2
. Wie werden alle diese Spalten zurückgegeben col_a
, col_b
, col_text
) aus einer einzelnen FTS-Abfrage?
Aktualisiere
Ich habe versucht, mit dernotindexed=column_name
Option wie in
CREATE VIRTUAL TABLE fts_table USING fts4(content="t2", col_a, col_b, col_text, notindexed=col_a, notindexed=col_b);
Dies sollte für einige Leute funktionieren, aber ich benutze es in Android undnotindexed
-Option wird erst mit SQLite 3.8 unterstützt, Android erst mitAndroid Version 5.x. Und ich muss Android 4.x unterstützen. Ich aktualisiere diese Frage mit dem Android-Tag.