在小索引中更新项目/文档需要1-2秒

时间:2012-03-11 17:41:30

标签: java lucene

我们有一个小索引 - 大小不到1MB,涵盖大约10,000个文档。存储的唯一字段非常短,这解释了小索引大小。

将文档加载到索引中后,现有文档的更新可能需要1到2秒(尽管此范围存在很大差异)。我们已经尝试过使用各种最佳实践(例如Lucene wiki中的那些),但无法找到错误。我们甚至已经开始使用RAMDirectory来消除IO成为问题的可能性。

这真的是期待的表现吗?

更新 如下所述,我正在添加更多细节:

  • 我们将Lucene视为一个黑盒子,我们只计算重新索引/更新对象所需的时间。我们不知道里面发生了什么。
  • 对象(或文档,用Lucene的术语)非常小,每个的总大小为2KB。

1 个答案:

答案 0 :(得分:0)

概述整个更新过程的代码段会有所帮助。你是在每次更新后提交的吗?这不是必需的,为了获得最佳性能,您必须使用近实时读取器。较新的Lucene版本有一个NRTManager,可以处理所涉及的大部分样板。

在许多情况下,最佳做法是很少或从不提交(除非关闭时)。如果您的服务不合理地关闭,您将丢失索引,但即使您没有,也必须在重新启动时重建它以解释同时发生的所有更改。

相关问题