2016-07-11 8 views
0

ich schon von hier lesen FTS4 sqlite MATCH not working und hier Full text search example in Android aber es kann mein Problem nicht lösen.FTS4 SQLite MATCH Abfrage nicht funktioniert

Ich habe eine externe Datenbank und ich benutze sqlite 3 Version 3.13.0 mit 2 Tabelle wie folgt.

enter image description here

Und ich erstellen eine virtuelle Tabelle:

CREATE VIRTUAL TABLE tb_bank_fts USING fts4 (content="tb_bank",address, typename) 

Virtuelle Tabelle erfolgreich erstellen und ich kann wählen verwenden.

enter image description here

Aber ich kann nicht "match" Abfrage mit fts4 Tabelle verwenden, kehren alle Tage ohne Fehler null.

enter image description here

Halb Monat kann ich fts4 Tabelle mit „Match“ abfragen, aber jetzt kann ich that.I nicht wissen nicht, warum. Ich versuche mit SQlite Manager Addon in Firefox aber das gleiche Problem.

+0

Wie haben Sie Einfügen von Daten in die FTS-Tabelle? –

+0

@ CL. Ich benutze diesen Code 'CREATE VIRTUAL TABLE fts_table_name VERWENDUNG von fts4 (content =" original_tabellenname ", colum1, colum2 ...)'. Alle Datensätze aus der Originaltabelle werden in die virtuelle Tabelle mit den von Ihnen ausgewählten Spalten eingefügt. Entschuldigung für mein schlechtes Englisch! –

Antwort

1

Die documentation sagt:

Das FTS4 Modul nie auf die Inhaltstabelle schreibt, und auf die Inhaltstabelle Schreiben beeinflusst nicht den Volltextindex. Es liegt in der Verantwortung des Benutzers sicherzustellen, dass die Inhaltstabelle und der Volltextindex konsistent sind.

Also, wenn Sie Daten in der Basistabelle eingefügt haben, haben Sie auch in die FTS-Tabelle einzufügen:

INSERT INTO tb_bank_fts(docid, address, typename) 
SELECT rowid, address, typename FROM tb_bank; 

oder einfach:

INSERT INTO tb_bank_fts(tb_bank_fts) VALUES('rebuild'); 
+0

OMG, du sparst meine 5 Stunden. vielen Dank. Ich habe das gelöst. Ich verstehe es schon –