我正在使用 lucene4.2 并且有一个索引,其文档有超过 50 个字段。该索引包含大约 80 mio。文件,大小为 11.5 GB。每次查询超过 20 秒。像这样的东西:
//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);
当 JVM 堆大小小于 1024M 时会导致 OutOfMemoryError。我真的很困惑为什么它需要这么多的内存和时间。如何在 1 秒内完成搜索?