2010-09-27 81 views
15

是否有可能使用Lucene作爲完整的數據存儲(與其他(mongo,couch)nosql變體一樣)。Lucene作爲數據存儲

我知道有一些限制,如一個索引器最近更新的文檔不會顯示在其他索引器中。所以我們需要重新啓動索引器來獲取更新。

但最近我偶然發現了solr,似乎這些問題可以通過某種快照複製來避免。

因此,我認爲我可以使用lucene作爲數據存儲,因爲這也使用mongo和沙發內部用於管理文檔的相同類型的文檔(基於JSON),並且其經過驗證的索引算法可以超快速地獲取記錄。

但我很好奇有沒有人試過之前..?如果不是沒有選擇這種方法的原因是什麼。

+1

我對Lucene瞭解不多,但我認爲它大多是一個索引器;它不存儲文檔,它只是索引它們。所以你需要一個Lucene之外的數據存儲......無論如何,我是否有任何意義? – pascal 2010-09-27 10:45:07

+1

@pascal,其錯誤.. lucene也可以存儲文件。當我們定義字段時,我們可以指定是否需要存儲該項目或只是索引... – RameshVel 2010-09-27 10:46:04

+2

請參閱http://stackoverflow.com/questions/3215029/nosql-mongodb-vs-lucene-or-solr-as-your - 數據庫/ 3216550#3216550 – Mikos 2010-09-27 23:33:36

回答

4

我只和Solr合作過,Lucene的衍生產品(我會推薦使用Solr來處理任何人),所以我的觀點可能有點偏差,但應該可以使用Solr作爲數據存儲。如果沒有更加永久的背景,這將不會很有用。

您可能會遇到的問題是,將數據輸入到Solr並不能保證您在預期時將其還原。由於索引器決定以某種方式包含結果,因此不要使用非常嚴格的刻面,因此可能會在檢索數據時遇到問題。

我對這種方法做了一些嘗試,但我看到的唯一真正的好處是,您希望在客戶端使用搜索索引,以便他們可以在內部快速搜索然後查詢擴展信息的數據庫。

我的建議是使用solr進行搜索,然後讓它返回您可能需要的數據的簡短樣本以及用於在傳統數據存儲中進一步查詢的索引。

TL; DR:是的,但我不會推薦它。

15

還有耐久性的問題。雖然Lucene索引不應該被破壞,但我已經看到它發生了。 Lucene修復破損索引的方法是「丟棄並重建原始數據」。這對索引工具來說非常合理。但它確實要求您將數據存儲在其他地方。

+0

多數民衆贊成在一個好點... – RameshVel 2010-09-27 10:56:26

3

The Guardian uses Solr as their data store。您可以在幻燈片中看到他們的一些原因。

在任何情況下,我認爲他們的網站的流量非常大(當然比我所做的任何工作都要多),所以我覺得我會很樂於說Solr可能會爲你工作,因爲它可以滿足他們的需求。

+0

根據幻燈片,衛報仍然使用關係數據存儲。 Solr被用作爲其API提供動力的數據庫。 – anon 2015-02-25 16:29:59

相關問題