2010-04-29 23 views
6

Bir sözlük uygulaması yazıyorum ve yazarken öneren normal kelime yapmak gerekir.SQLite FTS3 benzetmek LIKE somestring%

LIKE somestring% oldukça yavaştır (~ 100k satır tablosunda ~ 1300ms) bu yüzden FTS3'e döndüm.

Sorun şu ki, bir dizenin başlangıcından arama yapmak için aklı başında bir yol bulamadım.
Şimdi sonra kod uzaklıklar dize ayrıştırmak,

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

gibi bir sorgu sahnede oluyorum.

Daha iyi seçenekler var mı?

cevap

6

Evet yapmak alanda word üzerine endeksini ayarlamak ve

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

yerine GİBİ veya MAÇ kullanabilir veya

GLOB emin