2010-07-19 48 views
6

我從CouchDB開始,需要一些幫助。CouchDB中的複雜動態查詢

我有很多數據在表中列出給用戶。用戶應該能夠通過多個動態參數來過濾該數據。

E.g.假設一個帶有日期,作者,標籤,is_published,標題的表格。

用戶應該能夠指定任何過濾器,如「包含標籤'couchdb'和is_published = true」或「日期在上個月內,作者是我」。

這樣的查詢如何在CouchDB中工作?

回答

7

我認爲複雜查詢的標準答案是使用Lucene。也許不是你正在尋找的答案,但Lucene有更先進的過濾功能。

看看couchdb-lucene on github。在couchDB wiki上還有另一個關於full text indexing的頁面。

+0

ElasticSearch河[去了](https://www.elastic.co/blog/deprecating-rivers)所以這裏的第二個鏈接已經過時了,但現在有https://github.com/logstash-plugins/ logstash-input-couchdb_changes和https://www.elastic.co/guide/en/logstash/current/_how_to_write_a_logstash_input_plugin.html – 2016-03-27 09:57:21

3

開箱即用的解決方案是,您在交付設計文檔前先爲他們創建這些查詢。如果你覺得,這是否會限制你的用戶,那麼遵循andyuk的建議,看看couchdb-lucene。

雖然如果您在某些map/reduce查詢中無法做到您要查找的內容,我會產生懷疑。記住,你可以在地圖函數中多次發射()。