Como consultar uma tabela FTS4 de conteúdo externo, mas retornar colunas adicionais da tabela de conteúdo original
Estou criando umTabela de conteúdo externo do FTS4 no SQLite assim:
CREATE TABLE t2(id INTEGER PRIMARY KEY, col_a, col_b, col_text);
CREATE VIRTUAL TABLE fts_table USING fts4(content="t2", col_text);
Estou usando uma tabela de conteúdo externa para não precisar armazenar valores duplicados decol_text
nofts_table
. Estou apenas indexandocol_text
Porquecol_a
ecol_b
não precisa ser indexado.
No entanto, quando faço uma consulta defts_table
como isso
SELECT * FROM fts_table WHERE fts_table MATCH 'something';
Eu não tenho acesso acol_a
ecol_b
da tabela de conteúdot2
. Como retornar todas essas colunas (col_a
, col_b
, col_text
) a partir de uma única consulta do STF?
Atualizar
Eu tentei usar onotindexed=column_name
opção como em
CREATE VIRTUAL TABLE fts_table USING fts4(content="t2", col_a, col_b, col_text, notindexed=col_a, notindexed=col_b);
Isso deve funcionar para algumas pessoas, mas estou usando-o no Android e nonotindexed
A opção não é suportada até o SQLite 3.8, que o Android não suporta atéAndroid versão 5.x. E eu preciso dar suporte ao Android 4.x. Estou atualizando esta pergunta para incluir a tag Android.