慢Lucene.Net搜索性能

时间:2010-04-21 12:54:28

标签: performance lucene.net

使用Lucene.Net面对慢搜索性能(+ NHibernate.Search但无关紧要)。

Luke工具箱概述:

  • 字段数:33
  • 文件数量:5607
  • 条款数量:101377
  • 有删除吗? /优化?:是(97478)/否

索引目录大约200Mb。

查询(使用org.apache.lucene.analysis.SimpleAnalyzer)

  

标题:lapsa~0.5摘要:lapsa~0.5含量:lapsa~0.5位置:lapsa~0.5作者:lapsa~0.5

平均需要约60000毫秒。


我怀疑我错过了一些重要的东西。有什么想法有什么不对吗?不能这是正常的。


试图“检查”并“修复”它们。不得不勾选Don't open IndexReader (when opening corrupted index),否则Check index tool不想出现。

检查结果:

  

BAD:missingSegments

诊断输出:

  

错误:无法读取目录中的任何段文件   java.io.FileNotFoundException:在org.apache.lucene.store.FSDirectory@D中找不到segments *文件:\ Temp \ Index:files:       在org.apache.lucene.index.SegmentInfos $ FindSegmentsFile.run(SegmentInfos.java:655)       在org.apache.lucene.index.SegmentInfos $ FindSegmentsFile.run(SegmentInfos.java:538)       在org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:306)       at org.apache.lucene.index.CheckIndex.checkIndex(CheckIndex.java:340)       在org.apache.lucene.index.CheckIndex.checkIndex(CheckIndex.java:319)       在org.getopt.luke.Luke $ 6.run(未知来源)

试图按Fix Index。得到了这个:

  

修复索引期间的错误:   显示java.lang.NullPointerException       at org.apache.lucene.index.CheckIndex.fixIndex(CheckIndex.java:781)       在org.getopt.luke.Luke $ 7.run(未知来源)

3 个答案:

答案 0 :(得分:3)

听起来像你有一个损坏的索引。 D:\ Temp \ Index文件夹中是否有任何文件?我认为必须有或搜索根本不起作用...您使用的是什么版本的Lucene.Net?早期的版本曾经用来破坏我的索引,但在这方面,后来的版本似乎要好得多。

如果你无法搞清楚,你可能只需要从头开始重建索引。

答案 1 :(得分:0)

在Luke中,转到“工具”菜单,然后选择“检查索引工具”。查看您的索引是否已损坏或是否存在其他问题。

答案 2 :(得分:0)

This一个人帮助了我。切换自动优化。