2

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

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

我的系统具有这些功能:

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

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

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

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

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

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

任何有关索引清除过程的信息将不胜感激。

谢谢。

编辑

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

4

1 回答 1

0

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

于 2013-08-21T17:27:44.873 回答