2013-08-27 6 views
7

Ich habe Tabelle mit fast 200k Einträge. Als ich versuchte mit LIKE zu suchen, war es sehr langsam. Jetzt entschied ich mich für FTS. Also habe ich zwei Indizes erstellt, in denen gesucht wird. Dann habe ich fts virtuelle Tabelle erstellt.Wie verwendet man FTS3 in SQLite

Ich habe keine Ahnung, wie Sie neu erstellte FTS-Tabelle verwenden. Also meine Fragen ist, wie man diese virtuelle Tabelle benutzt, um Suche zu machen? Kannst du ein Beispiel geben?

Antwort

7

Dies wird in the documentation erklärt.

Sie benötigen die beiden Indizes für FTS-Suchen nicht.

Sie sollten die id Spalte als INTEGER PRIMARY KEY deklarieren. Sie brauchen wahrscheinlich die Spalte entry_id in der FST-Tabelle nicht.

Kopieren Sie den Text in die FTS Tabelle:

INSERT INTO search_eng_fts(id, re_value, ke_value, g_value) 
SELECT id, re_value, ke_value, g_value FROM search_eng; 

Dann können Sie den MATCH Operator in der Tabelle suchen:

SELECT id FROM search_eng_fts WHERE re_value MATCH 'hello'; 
Verwandte Themen