2012-05-10 19 views
5

Estoy considerando usar CouchBase para una aplicación muy pesada y de escritura pesada. También necesitaré apoyar la búsqueda en función de los diferentes atributos de los documentos, así como las consultas de rango.Búsqueda en la gama CouchBase

CouchBase tiene vistas para permitir la búsqueda más allá de las búsquedas de valores clave, pero parece que esto es principalmente para obtener documentos dentro de un cierto rango, por ejemplo. obtener todos los documentos indexados entre dos claves especificadas, en lugar de "darme todos los documentos que tengan el atributo de género a 'aventura'" o "darme todos los documentos que tengan fecha de creación entre 1/1/1 y 2/1/1"

¿Hay alguna manera de lograr lo que quiero sin un índice externo?

Respuesta

3

Definitivamente puede hacer las dos cosas que describe allí. Haría ambas cosas con las vistas en Couchbase Server 2.0.

Por ejemplo, una técnica común cuando se necesita buscar un rango de fechas es emitir una matriz JSON desde la función de mapa en la vista. Esto le daría algo como: [2012, 5, 11, 16, 27, 41]

Como cuando consulta una vista, una matriz JSON es un lugar válido para la tecla de inicio y la tecla de finalización, puede especificar que distancia.

Del mismo modo, extrayendo todos los atributos que emitiría cada uno de ellos desde su función de mapa con el documento _id. Luego, usando uno de los Couchbase SDKs, puede establecer la opción incluir documentos al realizar consultas y el documento se recuperará automáticamente.

+0

Gracias por su respuesta, algunas preguntas, tal vez tontas. ¿Por qué su matriz de muestra tiene tantos elementos, no se supone que es [aaaa, mm, dd]? Además, no estoy seguro de la segunda parte. Hay un ejemplo [aquí] (http://www.couchbase.com/develop/java/next) pero ¿cómo podría especificar un atributo de documento específico para filtrar? – Kailash

+0

Agregué elementos por hora, minuto, segundo, eso es todo. Sin embargo, no estoy seguro de cuál es tu segunda pregunta. –

+0

Creo que lo tengo ahora, ¡muchas gracias! – Kailash