Как запросить таблицу внешнего контента FTS4, но возвращать дополнительные столбцы из таблицы исходного контента

Я создаю таблицу внешнего контента FTS4 в SQLite следующим образом:

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 в fts_table . Я только индексирую col_text потому что col_a и col_b не нужно индексировать.

Однако, когда я делаю запрос fts_table как это

 SELECT * FROM fts_table WHERE fts_table MATCH 'something'; 

У меня нет доступа к col_a и col_b из таблицы содержимого t2 . Как вернуть все эти столбцы ( col_a , col_b , col_text ) из одного запроса FTS?

Обновить

Я попытался использовать 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.

    Таблицы FTS имеют внутренний столбец INTEGER PRIMARY KEY, называемый docid или docid . При вставке строки в таблицу FTS установите этот столбец в первичный ключ строки в исходной таблице.

    Затем вы можете легко найти соответствующую строку, либо с отдельным запросом, либо со следующим соединением:

     SELECT * FROM t2 WHERE id IN (SELECT docid FROM fts_table WHERE col_text MATCH 'something')