我在Java和dotnet中实现了Lucene。除了搜索时间(获取匹配文档所需的时间)外,统计数据大致相当。Java应用程序大约需要9-10秒,而Dotnet只需52分钟。I已经索引了99000个文档,其中包括pdf、docs、txt等。两个POC的索引都是在相同的文件上执行的。这是由于java版本优越而导致搜索时间的差异,还是在我的lucenedotnet编码中出现了一些错误?
发布于 2020-09-22 13:52:15
这个问题也作为一个问题提交给了lucene.NET存储库。关于StackOverflow上有关Lucene.NET 4.8Beta性能的文档,我将引用一个开发人员jeme的响应:
--这听起来确实太可疑了,我们有一个索引,包含超过100万个文档,每个文档都有数千个字段。如果我做一个免费的文本搜索(这意味着它访问所有字段),开始和结束一个通配符(例如。( a),这可能是我所能想到的最坏的情况,它只需大约50秒,也就是说,包括加载搜索产生的实际9兆字节的数据,并通过导线返回数据。(不完全令人满意,但考虑到我刚才针对索引+连线的惩罚,这是可以理解的).
经过进一步的研究,这个问题是在使用3.03版本的Lucene.NET而不是4.8Beta时遇到的。该开发人员引用的性能问题是否与Lucene.NET 3.03源代码或特定于项目的实现源代码有关尚不清楚。
您可以在这里阅读更多内容:https://github.com/apache/lucenenet/issues/333#issuecomment-685039718
https://stackoverflow.com/questions/63685659
复制相似问题