2012-04-24 74 views
2

我想實現文本搜索引擎。特別是要索引的文件將是重量條款清單。
該查詢是一個簡單的術語列表。
搜索的輸出應該是按照相關性匹配的排序列表(針對條款及其權重) 我需要存儲的數據很大!它不適合單個節點。所以最終的存儲必須易於分發。Couchbase或Riak作爲搜索引擎的數據存儲

您會推薦哪種數據庫存儲? 經過一些分析,我想選擇Couchbase和Riak。

你對簡單的關係型數據庫有什麼看法?他們已經有一些很好的發佈機制(例如:Postgres 9內置)

Riak具有buildin搜索功能,但據我所知我不想使用它,因爲我需要有索引來獲得響應(而不是爲每個查詢計算)。

在另一方面Couchbase 2「增加了二級指標爲JSON文件。通過則可以查詢該視圖創建索引。索引是均勻分佈的。
這聽起來作爲Couchbase

+1

更多細節兩個數據塊使用隊列自己的同步等Stack Overflow是不是一個推薦引擎(HTTP://元。 stackexchange.com/a/128562/172496) – 2012-04-25 06:03:52

+1

那麼我應該在哪裏尋找建議,如果我沒有與沙發底座或riak專業? – 2012-04-25 11:50:59

+0

對於文本搜索考慮Solr(成熟但很難碎片)或彈性搜索(旨在自動分片)。然後,在CouchDB,Riak或其他NoSQL DB中進行Lucene(like)集成以進行文本搜索。特別:Sphinx全文存儲用於MySQL或其他文本搜索-RDBMS集成。 – aitchnyu 2012-04-26 06:41:52

回答

1

對於全文搜索,我建議使用Riak Search,它非常強大,借用了Lucene的大部分優點,同時仍具有透明容錯,複製和可擴展性。如果你的數據不適合單個節點,它可能是最均衡的開源解決方案。

+0

謝謝。其實,正如在這個問題中,我正在考慮Riak。我正在尋找一些來自各國人民的建議或意見。 – 2012-05-17 21:32:25

+0

在Riak的郵件列表中,您可以找到許多使用Riak進行非常不同目的的人:http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com – 2012-05-18 09:23:55

1
一個很大的好處

我使用ElasticSearch和CouchDB,它工作得很好。

+0

剛剛添加的缺失要求:存儲必須易於分發,因爲數據大小可能會超出單個節點。 ElasticSearch在數據分發方面效果如何? – 2012-04-24 15:37:05

+0

是的http://www.elasticsearch.org/我不知道你的確切規格,但它聽起來非常接近。欲瞭解更多信息,請訪問Freenode(IRC)#elasticsearch – lukecampbell 2012-04-24 19:30:10

2

要回答「我/我應該使用數據庫存儲我的索引文檔?」這個基本問題。

是的。

這是一個相當常見的模式。有幾個組織(名稱保留無辜者)使用Solr作爲索引和相關引擎,僅返回來自搜索的主鍵,然後轉而從數據庫存儲中檢索實際文檔。

然而,這種方法存在挑戰;主要是保持兩個系統(solr和db)同步。 Couchbase使用其跨數據中心複製技術來保持ElasticSearch實例同步; Riak 2剛剛發佈並有效地爲數據庫的每個分片自動創建Solr索引。要麼運作良好,取決於你的用例。另外,你可以做顯然在

http://docs.couchbase.com/couchbase-elastic-search/ http://docs.basho.com/riak/latest/dev/advanced/search/