在索引中清除已删除文档的Solr / Lucene流程是什么?

时间:2013-08-20 15:56:52

标签: solr lucene

当您在索引中获得一些已删除的文档(在通过查询删除之后)时,清除索引的过程是什么?

我问这个问题,因为我正在研究一个基于solr的项目,我注意到了一个奇怪的行为,我想有一些关于它的信息。

我的系统有这些功能:

  • 我的文档被连续编入索引(每秒1000个点)

  • 使用此查询每隔几秒进行一次清除:

    <delete><query>timestamp_utc:[ * TO NOW-10MINUTES ]</query></delete>
    

因此,我的索引中每次都可以看到600000个文档: 10分钟* 60 = 600秒 和速度= 1000docs / s所以600 * 1000 = 600000

但是我的索引的大小随着时间而增加。而且我知道当你通过查询进行删除时,文档会受到“删除”标签或索引中类似的标签的影响。

我已经看过并尝试了“expungeDeletes = true”这个属性,但我没有注意到我的索引大小发生了很大的变化。

有关索引清除过程的任何信息都将受到赞赏。

感谢。

修改

我知道优化可以完成这项工作,但这是一个很长的操作,我想避免这种情况。

1 个答案:

答案 0 :(得分:0)

您可以每10分钟创建一个新的集合/核心,切换到它(加上前一个)并删除最旧的集合/核心(超过10分钟)。