2012-05-10 154 views
5

我正在考慮使用CouchBase進行非常繁重的編寫大量應用程序。我還需要支持基於文檔的不同屬性以及範圍查詢進行搜索。CouchBase範圍搜索

CouchBase具有允許搜索超出鍵值搜索的視圖,但它看起來像這主要是爲了獲得一定範圍內的文檔,例如。獲取在兩個指定鍵之間索引的所有文檔,而不是「給我具有流派屬性爲'冒險'的所有文檔」或「給我所有創建日期在1/1/1和2/1/1之間的文檔」

有沒有一種方法可以在沒有外部索引的情況下實現我想要的功能?

回答

3

你絕對可以做你在那裏描述的。你可以在Couchbase Server 2.0中同時使用視圖。

例如,當需要搜索日期範圍時,常見的技術是從視圖中的地圖函數發出JSON數組。這會給你類似的東西: [2012,5,11,16,27,41]

由於當您查詢視圖時,JSON數組是一個有效的開始鍵和結束鍵的位置,您可以指定範圍。

同樣,從doc函數中提取您的map函數中的每個屬性的所有屬性。然後使用Couchbase SDKs中的一個,可以在查詢時設置包含文檔選項,並自動提取文檔。

+0

感謝您的回答,幾個問題,也許是愚蠢的。爲什麼你的樣本數組有這麼多元素,是不是應該是[yyyy,mm,dd]?另外,我不清楚第二部分。有一個例子[這裏](http://www.couchbase.com/develop/java/next),但我如何指定一個特定的文檔屬性來過濾? – Kailash

+0

我添加了小時,分鐘,秒的元素,就這些。我不確定你的第二個問題是什麼。 –

+0

我想我現在明白了,非常感謝! – Kailash