我需要爲我正在處理的項目制定一個架構決策。這裏是要求:MongoDB或Solr用於文檔攝取,存儲和分面搜索?
攝入文件(.DOC,.PDF,.CSV,也許視頻)
實際文檔存儲(我假設服務器上的磁盤與 一些參考上來自數據庫的文件) - 以及某些在數據庫中可搜索和可顯示的字段?
全文文檔搜索
磨製(基於選擇領域聚集從文檔 攝入可能對每個文檔不同的 - 換句話說 可能有200個刻面,但只有一些適用於各文檔)
我使用rails作爲服務器和當前的mySQL。我相信我在這裏至少有兩個明顯的選擇:
- Solr;在mySQL中存儲來自文檔的字段,並使用Sunspot gem進行Solr索引和構面定義。這裏的好處似乎是快速搜索,刻面和文檔吸收工具。我不確定我的問題與200(也許更多 - 真正動態定義)方面。另外,考慮到這些文檔有各種形狀和大小,我想知道文檔存儲機制是否會更好。
- MongoDB;使用mongoid gem將文檔內容存儲在MongoDB中。我對這裏的文檔提取實用程序並不熟悉,雖然文檔存儲有明顯的勝利,但我相信mongodb在全文搜索方面做得很好,但對於我來說,我需要使用多個查詢進行聚合,而且可能會很慢。
(我也知道我可以在MongoDB中使用Solr,但是......不確定)。
老實說,我對Solr和MongoDB都比較陌生,可以使用一些建議,因爲我確信我缺少一些優點和缺點。
我認爲像S3和solr這樣的存儲網絡可能是最好的 – Sammaye 2013-03-13 12:47:12
當前的MongoDB生產2.2沒有全文搜索,也不容易在其上建立一些高效的(不推薦)。它來了......但還沒有準備好生產。根據數據的性質,即使面向搜索也可能是一個問題。 – WiredPrairie 2013-03-13 12:47:36
Sammaye - 謝謝...對於這個應用程序,客戶端過於關心安全性,因此雲存儲不是一種選擇(對他們而言)。 WiredPrairie,嗯,我想我一直在讀錯的東西。顯然這肯定會讓mongodb在棺材上留下一個釘子。 – 2013-03-13 12:51:56