Я пытаюсь создать приложение словаря на Android. У меня есть база данных из 80000 статей. Когда пользователь вводит слово в EditText
, я хочу показать предложения в виде списка, чтобы сделать это я использую следующий код:Android SQLite очень медленный поиск
public Cursor query(String entry){
String[] columns = new String[]{"_id", "word"};
String[] selectionArgs = new String[]{entry + "%"};
return mDB.query("word", columns, "word LIKE ?", selectionArgs, null, null, null);
}
и я использую SimpleCursorAdapter для ListView.
Проблема в том, что предложения появляются очень поздно. Я думаю, причина в LIKE
в SQL. Я не знаю другого способа сделать это. Есть ли что-то, что я могу сделать, чтобы повысить эффективность получения предложений?
, насколько велика область слова? –
вы должны иметь отдельную таблицу с ключевыми словами для каждой статьи и выполнять поиск там. иначе это не поможет. –
@coderdem Сколько предложений планируется представить? это будет простая функция автозаполнения? Или действительно намереваются показать тысячи результатов поиска в списке результатов _suggestions_? если не последним, почему бы не использовать _limit_? –