2012-06-28 67 views
2

我正在考慮使用Apache Solr。在我的數據庫中,我將擁有大約10.000.000條記錄。我將使用它的最糟糕的情況是大約有20個可搜索/可排序的字段。我的問題是這些字段可能會在一天中頻繁更改值。例如,在我的數據庫中,我可能會在10000條記錄的同時更改某些字段,這可能會發生0,1或1000次,每天等等。問題是,每次我更新數據庫中的值我希望它被更新在solr中,我也可以每次搜索更新的數據。Apache solr頻繁地添加/編輯/刪除記錄

對於那些使用過solr的人來說,在這樣的體積中重建索引有多快?這次更新(從我讀的內容中刪除並讀取記錄),它的索引例如花費5秒,5分鐘,1小時,是什麼?考慮它將在一臺好的服務器上運行。

回答

3

很難說實話沒有嘗試。但是,您需要知道Lucene和Solr目前不支持單個文檔更新(雖然有一些工作正在進行中https://issues.apache.org/jira/browse/LUCENE-3837),這意味着即使您只更新了單個字段,也需要重新索引整個記錄。

此外,Lucene和Solr在執行批量更新方面比單文檔更新要好得多。要解決這個問題,Solr有一個不錯的commitWithin參數,可以讓Solr將各個更新組合在一起以提高吞吐量。

您應該謹慎使用此編號,但我經常在非常傳統的硬件上創建數百萬個文檔(~30個小字段)的索引,吞吐量約爲5000個文檔/秒。

+0

關於〜5000docs/s的數量...這是從頭創建索引的時間嗎?或者是在添加幾千個文檔後需要重新索引的時候? – Panos

+0

現在是從頭創建索引的時候了(索引通常有1到10百萬個文檔)。 – jpountz

+0

當你更新某些東西時多少時間? – Panos