2010-04-29 7 views
6

Sto scrivendo un'app del dizionario e ho bisogno di fare la solita parola che suggerisce durante la digitazione.SQLite FTS3 simulare LIKE somestring%

LIKE somestring% è piuttosto lento (~ 1300ms su una tabella di ~ 100k riga), quindi ho passato a FTS3.

Il problema è che non ho trovato un modo corretto per cercare dall'inizio di una stringa.
Ora sto eseguendo una query come

SELECT word, offsets(entries) FROM entries WHERE word MATCH '"chicken *"'; 

, quindi analizzare la stringa di offset nel codice.

Ci sono delle opzioni migliori?

risposta

6

, assicurarsi di impostare l'indice sul campo word e utilizzare

word >= 'chicken ' AND word < 'chicken z' 

invece di LIKE o PARTITA o glob