2012-06-26 61 views
1

我一直在尋找GAE的逃生方式,因爲數據存儲不支持很多我想用它做的事情。Cocuhdb適合這樣的查詢嗎?

所以我看了看CouchDB(其他人),我非常喜歡REST接口和我在Cloudant中找到的託管選項。

但是,對於我所有的使用Google和閱讀任何可以找到的文檔,我仍然不確定它是否合適。 所以我來這裏希望有人可以有更多的見解。

我寫的Web應用程序和很多我想做的事情將涉及一個查詢,看起來像這樣的項目:

找到的多是用戶輸入經/緯邊框內,並在那裏開始的所有條目時間小於用戶輸入時間1,結束時間大於用戶輸入時間2,並且具有用戶輸入列表標籤中的所有標籤。

這甚至不是僞代碼,但我希望它是有道理的。

我不只是在尋找「你不能在CouchDB中做到這一點」。某種解釋,也許就像「如果你可以沒有標籤生活,那麼你可以做到這一點:」

我想使用Cloudant服務,所以GeoCouch顯然沒有問題,但他們做了一些應該像lucene一樣工作,但這是否意味着查詢速度很慢?

正如你所知道的,我有點困惑在這裏,所以只是做你最好的整頓我出去,我會greatfull :)

回答

0

沒有提到的標籤(這本身已經是一個問題) ,你所描述的是一個多維查詢:你有幾個「座標」(lat,long,start-time,end-time)併爲每個座標提供一個範圍。

CouchDB無法在所有的—上執行多維查詢,您只能在一個座標上獲得單維查詢。

標籤當然有可能,但這取決於您是否需要列表中至少有一個標籤的文檔,或列表中是否有全部標籤的文檔。第一種情況很簡單(使用批量API對每個標籤運行一個查詢),第二種情況可能需要過多的內存(如果文檔有N個標籤,則需要發送2個標籤集才能匹配涉及它的所有可能的標籤組合,因此您應該在文檔中的標籤數量或查詢中的標籤數量上設置上限。

Lucene確實允許基於多維和基於關鍵字的查詢,但我無法保證其性能。

+0

我得到了我正在尋找的東西。只是在正確的方向推動。 Cloudant搜索似乎正是我需要的。現在我只需要弄清楚「social-auth」是否只能是oauth,或者我是否也可以使用openid,但那是另一個問題。 –