2014-08-31 66 views
0

我想索引solr/lucene中的大型數據。既然它是一個遺留系統,並且由於其他原因,我必須通過C++層來完成。但在此之前,我想優化流程,所以我沒有做到這一點。我發現以下幾件事:solr/lucene中索引大型文檔的可能問題

  1. 批量索引:這將幫助我的情況下索引將失敗之間,因爲一些失敗之間。所以我可以從剩下的批次開始。
  2. 緩衝查找
  3. 索引併發

我發現在過去的2項的地方,同時尋找不同的問題,但我無法完全理解。

所以如果有人能幫助我理解這兩個問題和任何其他可能出現的問題。

+1

我們在談論多大的文件?有多少文件?您是否試圖實際索引一些文檔以查看是否有任何問題?過早優化等。 – MatsLindh 2014-08-31 10:14:01

+0

我沒有實際索引文件。這可能會發生,我不需要這裏給出的任何優化技術。但是,我想在批處理索引的上下文中理解這兩個術語(緩衝區查找和索引器併發),這是出於我的好奇心。 – Shweta 2014-08-31 10:29:03

回答

1

當你提到「緩衝區查找」時,我不確定你的意思是什麼 - 通常這是允許服務器擁有體面的內存緩存的情況,儘可能多的查詢可以是在不需要重新計算文檔之間的交集以及哪些文檔包含在針對每個查詢的特定集合中的情況下應答。對於Solr,使用不同的*cache設置進行配置。對於大多數應用程序,這些要求會有所不同,具體取決於查詢負載,字段定義等。執行提交(使索引在索引中可見)通常會使緩存過期,因爲緩存可能不再有效。

索引器併發性允許服務器將文檔同時從多個線程插入到實際索引中,而無需在線程之間進行鎖定。 Lucene製作concurrent indexing possible back in 2011(用於Lucene 4.0),並允許更快速和更高效地更新索引。這是否重要取決於您的應用程序。