Je me rends compte qu'il y a déjà beaucoup de questions sur l'interrogation de la banque de données App Engine, mais je souhaite obtenir des opinions sur mon cas particulier. Je demande des scores pour construire une table de score élevé, donc je les veux classés par score décroissant. Maintenant, il est possible que deux partitions aient la même valeur de score, il n'est donc pas possible de paginer en fonction de cette valeur, car vous pourriez finir par ignorer les scores en fonction du filtre de la page.Types de requête avancée Java App Engine
Je veux construire la requête autour d'une date dynamique. Par exemple, les 10 meilleurs scores au cours du dernier mois. Quelle est la meilleure manière de s'occuper de ça?
Je ne veux évidemment pas avoir à parcourir chaque partition à chaque fois. Dois-je charger ces scores dans le memcache et mettre à jour quand un score soumis est supérieur à un dans le top 10? Cela n'a pas de sens parce que je devrais définir mes plages de temps à l'avance, mais mettre en place un cron pour le rafraîchir tous les jours pour obtenir les scores qui ont atteint la limite de temps serait faisable. Cela peut-il être fait efficacement dynamique? Une autre option serait d'avoir juste un cron à travers tous les scores toutes les N heures ou quelque chose, mais je préfèrerais vraiment éviter de devoir faire cela.
Y a-t-il de la documentation qui m'aiderait à prendre ces décisions?
Une pensée est de construire la requête avec N nombre de conditions de N nombre de jours. Par exemple. setFilter ("date == il ya 5 jours || date == il y a 4 jours ..." Le problème que j'ai avec ceci est comment interroger seulement la partie date de la variable datetime. "date == '2010-02 -06 '"ne semble pas fonctionner, ni" date.date ==' 2010-02-06 '" – Richard