2012-05-10 17 views
5

Sto prendendo in considerazione l'utilizzo di CouchBase per un'applicazione pesante molto pesante e difficile da leggere. Dovrò anche supportare la ricerca in base a diversi attributi dei documenti e alle query di intervallo.Ricerca gamma CouchBase

CouchBase dispone di viste per consentire la ricerca oltre le ricerche di valori chiave, ma sembra che questo sia principalmente per ottenere documenti all'interno di un certo intervallo, ad es. ottenere tutti i documenti indicizzati tra due chiavi specificate, piuttosto che "dammi tutti i documenti che hanno l'attributo genere" avventura "" o "dammi tutti i documenti che hanno data di creazione tra 1/1/1 e 2/1/1"

C'è un modo per ottenere ciò che voglio senza un indice esterno?

risposta

3

Si può sicuramente fare entrambe le cose che descrivi lì. Faresti entrambe le cose con le viste in Couchbase Server 2.0.

Ad esempio, una tecnica comune quando è necessario cercare un intervallo di date consiste nell'emettere un array JSON dalla funzione mappa nella vista. Questo ti darebbe qualcosa del tipo: [2012, 5, 11, 16, 27, 41]

Da quando si interroga una vista, una matrice JSON è un posto valido per la chiave iniziale e la chiave finale, è possibile specificare che gamma.

Allo stesso modo, estraendo tutti gli attributi che emetteresti ognuno di essi dalla funzione mappa con doc _id. Quindi, utilizzando uno dei modelli Couchbase SDKs, puoi impostare l'opzione di inclusione dei documenti durante la query e il documento verrà recuperato automaticamente.

+0

Grazie per la risposta, alcune domande, forse stupide. Perché il tuo array campione ha così tanti elementi, non dovrebbe essere [yyyy, mm, dd]? Inoltre, non sono sicuro della seconda parte. C'è un esempio [qui] (http://www.couchbase.com/develop/java/next) ma come dovrei specificare un attributo documento specifico da filtrare? – Kailash

+0

Ho aggiunto elementi per ora, minuto, secondo, tutto qui. Non sono sicuro di quale sia la tua seconda domanda. –

+0

Penso di aver capito ora, grazie mille! – Kailash