2013-11-24 23 views
2

我們希望在具有32 GB RAM的單個8核Xeon機器上爲平均大小爲10 KB的1億個文檔建立索引。文檔總大小約爲1 TB。該設置被凍結,並且不會有更新。因此,索引可以針對只讀使用進行優化。大多數查詢都很簡單,像BM25這樣的簡單算法對我們來說已經足夠了。
巨大文檔集的Lucene平均查詢時間

以前有人用Lucene做過這個嗎?如果是,請告訴性能指標,例如每秒查詢次數,索引大小,以及特別意味着查詢的響應時間。

我知道這取決於硬件性能,最好的方法是自己測試一下,但在測試之前我想有其他人的經驗。特別是,我們希望低於1秒的響應時間。單臺機器和1億份文件可能嗎? Sphinx是更快的解決方案嗎?我應該提到,我們不希望分佈式解決方案如Solr。而且,我知道Lucene's nightly benchmarks,但它的集合非常小(4百萬doc),平均查詢時間未報告。

預先感謝。

回答

4

一如既往,這取決於您針對索引運行的查詢。對於簡單的關鍵字搜索,只要從SSD運行索引,1TByte/100M文檔的全面優化索引應該在32GB計算機上非常靈敏。與旋轉驅動器,不是很多。

我們目前的大型索引是3.6TByte/1.2B文件,80GB RAM的響應時間在1秒以下。它在Solr上運行,但在純Lucene下性能會相同或更好。有一個寫在https://sbdevel.wordpress.com/2014/06/17/terabyte-index-search-and-faceting-with-solr/有一些性能圖。