2010-04-29 2 views
6

Я пишу словарное приложение и вам нужно сделать обычное слово, предлагающее при наборе текста.SQLite FTS3 имитирует LIKE somestring%

LIKE somestring% довольно медленный (~ 1300 мс на столе таблицы ~ 100 тыс.), Поэтому я перешел на FTS3.

Проблема в том, что я не нашел разумного способа поиска с начала строки.
Сейчас я выступаю запрос как

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

, а затем разобрать строку смещений в коде.

Есть ли лучшие варианты?

ответ

6

Да, убедитесь, чтобы установить индекс на поле word и использовать

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

вместо LIKE или MATCH или GLOB

Смежные вопросы