Comprendo che Google AppEngine supporta solo un filtro di disuguaglianza per query. Quali sono le soluzioni alternative a questa limitazione? C'è qualche soluzione che fornirà un effetto simile?Filtro disuguaglianza in AppEngine Datastore
risposta
Se esiste una soluzione alternativa per disporre di un singolo filtro di disuguaglianza per query dipende dal tipo di set di dati su cui si sta eseguendo la query.
Ad esempio, se si desidera interrogare i dati posizionali utilizzando un indirizzo di latitudine e longitudine, in genere è necessario eseguire una query per un intervallo di valori su due proprietà (lat e long). Tuttavia, con un algoritmo geohash è possibile eseguire una query equivalente utilizzando solo una singola proprietà.
In realtà GAE supporta più filtri di disuguaglianza purché siano on the same property.
Le soluzioni alternative a questa limitazione sono specifiche per i dati, ad es. dipende da come sono strutturati i tuoi dati e da come vuoi interrogarli. Ad esempio, per la ricerca geografica, come menzionato @ Dan Holevoet, esistono vari algoritmi di geo-hashing. Fondamentalmente tutti questi algoritmi implicano la combinazione di più proprietà in una e allo stesso tempo la quantizzazione della proprietà (creazione di valori discreti). Ad esempio il geo-hashing comporta la divisione della mappa del mondo in piccole aree a dimensione fissa (= combinazione di lat/lon e quantizzazione) per poter effettuare ricerche tramite l'operatore di uguaglianza.
Quando metto a posto questo problema (la ricerca di un esempio va da - a) uso la query con un filtro di disuguaglianza singolo. A seconda dell'ordinamento (asc o desc) seleziono il limite superiore o inferiore. Successivamente, filtro il risultato in modo programmatico con il limite inferiore o superiore che non era nel filtro di query.
- 1. Golang - Query filtro datastore Appengine con confronto byte []
- 2. AppEngine la disuguaglianza e l'ordinamento non riesce
- 3. Appengine Search API vs Datastore
- 4. Utilizza Google AppEngine datastore al di fuori del progetto AppEngine
- 5. Memorizzazione di un grafico diretto in google appengine datastore
- 6. Modifica campo di testo in Appengine Datastore Viewer
- 7. Modifica proprietà integer per FloatProprietà di AppEngine DataStore esistente
- 8. un modo per convertire Appengine datastore Entity nel mio oggetto?
- 9. Strategie consigliate per il backup del datastore appengine
- 10. Interrogazione per N record casuali su Datastore Appengine
- 11. Thinking in AppEngine
- 12. Prolog: disuguaglianza operatore
- 13. Oracle operatore di disuguaglianza: ¬ =
- 14. Uguaglianza/disuguaglianza di array
- 15. come eseguire in modo efficace due filtri di disuguaglianza sulle query nel motore di app
- 16. Limite di disuguaglianza di lista
- 17. Migrazione fuori AppEngine
- 18. Come sapere quando gli aggiornamenti al datastore di Google AppEngine HRD sono completi?
- 19. Come ottimizzare un datastore Java/JDO di AppEngine put() per utilizzare meno scritture
- 20. Segui la struttura del modello di datastore su AppEngine - Ordina i follower per data
- 21. join interno utilizzando un'espressione disuguaglianza
- 22. Qual è la differenza tra gli errori timeout del datastore di Appengine 5 e 11?
- 23. Come utilizzare Amministrazione Datastore di AppEngine: Copia su un'altra applicazione Funzionalità
- 24. AppEngine Datastore Errore di timeout gettato prima di limite di 30 anni ha raggiunto
- 25. Datastore AppEngine: "L'oggetto con id ... è gestito da un gestore oggetti diverso"
- 26. Come archiviare e cercare dati geografici in AppEngine?
- 27. Come controllare il datastore GAE locale
- 28. GAE NDB datastore nuova funzionalità: accesso datastore entità provenienti da altri GAE app
- 29. Problema di riferimento inverso Appengine
- 30. Salvataggio di entità in django-nonrel con google appengine
è stato necessario? come menzionato da Peter, sono supportati più filtri di disuguaglianza purché siano sulla stessa proprietà. –
Provo a utilizzare uno (intervallo da - a) per lo stesso campo data - non è stato supportato per me. Lo uso con JDO – alexey28