2012-05-30 11 views

risposta

1

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à.

3

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.

0

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.

+0

è stato necessario? come menzionato da Peter, sono supportati più filtri di disuguaglianza purché siano sulla stessa proprietà. –

+0

Provo a utilizzare uno (intervallo da - a) per lo stesso campo data - non è stato supportato per me. Lo uso con JDO – alexey28

Problemi correlati