J'essaie de créer une application de dictionnaire sur Android. J'ai une base de données de 80000 articles. Lorsque l'utilisateur entre un mot dans un EditText
, je veux montrer des suggestions dans un ListView, Pour que j'utilise le code suivant:Android SQLite recherche très lente
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);
}
et j'utilise SimpleCursorAdapter pour le ListView.
Le problème est que les suggestions apparaissent très tard. Je pense que la raison est LIKE
dans le SQL. Je ne connais aucun autre moyen de le faire. Y a-t-il quelque chose que je puisse faire pour améliorer la performance des suggestions?
Quelle est la taille du champ de mot? –
vous devriez avoir une table séparée avec des mots-clés pour chaque article et y faire vos recherches. sinon ça ne va pas aider. –
@coderdem Combien de suggestions prévoient de présenter? Est-ce que ça va être une simple fonctionnalité de saisie semi-automatique? Ou avez-vous vraiment l'intention d'afficher des milliers de résultats de recherche dans la liste de résultats _suggestions_? sinon ce dernier, pourquoi ne pas utiliser _limit_? –