2012-05-10 29 views
5

Çok okunan ağır ve yoğun bir uygulama için CouchBase'i kullanmayı düşünüyorum. Ayrıca, aramanın yanı sıra aralıklı sorguların farklı özniteliklerine dayanarak aramayı desteklemem gerekecek.CouchBase range search

CouchBase, anahtar değer aramalarının ötesinde arama yapılmasına izin vermek için görüşlere sahiptir, ancak bunun esas olarak belirli bir aralıktaki belgeleri alması gibi görünmektedir. '' macera 'türüne sahip tüm belgeleri bana ver' 'veya' '1/1/1 ve 2/1/1 tarihleri ​​arasında yaratma tarihine sahip tüm belgeleri ver' 'yerine

Dış indeks olmadan istediğimi elde etmenin bir yolu var mı?

cevap

3

Kesinlikle orada açıkladığınız her ikisini de yapabilirsiniz. Couchbase Server 2.0'da her ikisini de görüyorsunuz. Örneğin, bir tarih aramasında arama yapılması gerektiğinde yaygın bir teknik, görünümde harita işlevinizden bir JSON dizisi yaymaktır. Bu size aşağıdaki gibi bir şey verir: [2012, 5, 11, 16, 27, 41]

Bir görünümü sorguladığınızdan beri, bir JSON dizisi başlangıç ​​ve bitiş anahtarı için geçerli bir yerdir, bunu belirtebilirsiniz. aralık.

Benzer şekilde, harita işlevinizden her birini yayınlayacağınız özelliklerin tümünü doc _id ile ayıklayın. Ardından, Couchbase SDKs'dan birini kullanarak, sorgulama sırasında dokümanlar dahil et seçeneğini belirleyebilirsiniz ve doküman otomatik olarak getirilir.

+0

Cevabınız için teşekkürler, birkaç soru, belki aptal olanlar. Örnek diziniz neden bu kadar çok öğeye sahip? [Yyyy, mm, dd] olması gerekmiyor mu? Ayrıca, ikinci bölüm hakkında açık değilim. Bir örnek var [burada] (http://www.couchbase.com/develop/java/next) ancak filtrelemek için belirli bir belge niteliğini nasıl belirleyebilirim? – Kailash

+0

Saat, dakika, saniye için öğeler ekledim, hepsi bu. İkinci sorunun ne olduğundan emin değilim. –

+0

Sanırım şimdi anladım, çok teşekkür ederim! – Kailash