2010-04-29 2 views
6

J'écris une application de dictionnaire et devez faire le mot habituel suggérant tout en tapant.SQLite FTS3 simuler LIKE somestring%

LIKE somestring% est plutôt lent (~ 1300ms sur une table en ligne de ~ 100k), donc je me suis tourné vers FTS3.

Le problème est, je n'ai pas trouvé un moyen sensé de rechercher depuis le début d'une chaîne.
Maintenant, je suis d'effectuer une requête comme

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

, puis la chaîne parse décalages dans le code.

Y a-t-il de meilleures options?

Répondre

6

Oui, assurez-vous de mettre l'index sur le champ word et utiliser

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

au lieu de LIKE ou MATCH ou Glob

Questions connexes