2009-08-13 54 views
2

我是新來的CouchDB,我知道我的心態很可能還是在關係數據庫領域太多了,但在這裏不用查詢:CouchDB的 - 使用參數

看來,沙發上查詢被所有通過瀏覽完成。我讀到臨時視圖非常低效,應該在生產中避免。

所以我的問題的確是如何做一個有效的查詢參數(因爲視圖不接受它們)。例如,如果我要使用Couch來爲博客網站提供支持,那麼我必須爲每篇帖子創建一個等同於'select post from posts where id = 1'的新視圖。

據我所知,我可以在查詢的同時使用lucene對結果進行全文搜索,但這隻對文本內容而非數字非常有用。

我很高興創建靜態視圖的船載,因爲它們可以非常簡單地在飛行中創建。我擔心的是,這不是沙發應該如何使用,我錯過了一些東西。隨時給我啓發。

乾杯,克里斯。

回答

3

視圖確實接受url參數,關鍵是你正在尋找的。你甚至可以限制你得到和排序的行數。

您的視圖可以被任意JSON鍵索引。這意味着您可以創建一個發佈如此的文檔的視圖,[username docid] => doc。然後你可以用http://url/to/view?key=[username docid]查詢這個視圖。

您可以創建一個發出[用戶名類型日期] => doc的視圖。現在您可以在特定日期之間獲得某個特定文檔(使用startKey和endKey url參數)。

您的博客示例是CouchDB特別適合的示例。事實上,我相信這是即將推出的O'reilly CouchDB書中的一個例子。

也就是說,某些類型的查詢不容易由CouchDB單獨處理。 couchdb-lucene可以在這裏幫助。不要認爲這僅適用於全文搜索。我一直在使用它來對數據庫運行一般的複雜查詢以獲得良好效果。