0
我使用的是lucene4.2並且有一個索引的文檔包含超過50個字段。 該指數包含約80萬個。文件大小爲11.5 GB。 每個查詢超過20秒。 是這樣的:lucene indexSearch.search性能
//Query: +(id:[3000000000000000000 TO 9000000000000000000]) +(devId:2 devId:3)
long start = System.currentTimeMillis();
TopDocs topDocs = indexSearch.search(query,1000);
long end = System.currentTimeMillis();
logger.info(end - start);
這導致OutOfMemoryError而當JVM堆大小比1024M少。 我很困惑,爲什麼它需要太多的內存和時間。 如何在1秒內完成搜索?
您是如何創建索引的? 80 mio。文件是80,000,000個文件?如果是這樣,1G內存可能不夠。 – zsxwing
3奎寧到9奎寧是相當大的範圍,我認爲發現了很多點擊。如果你縮小範圍,你是否看到同樣的問題。 – femtoRgon
這是我的parameter.mergeFactor 100 useCompoundFile false OPenMode.CREATE_OR_APPEND.You的意思是它會更快地分成多個索引?該ID不是自動增量,而是通過當前時間計算的。 –