当您在索引中获得一些已删除的文档(在通过查询删除之后)时,清除索引的过程是什么?
我问这个问题,因为我正在研究一个基于solr的项目,我注意到了一个奇怪的行为,我想有一些关于它的信息。
我的系统有这些功能:
我的文档被连续编入索引(每秒1000个点)
使用此查询每隔几秒进行一次清除:
<delete><query>timestamp_utc:[ * TO NOW-10MINUTES ]</query></delete>
因此,我的索引中每次都可以看到600000个文档: 10分钟* 60 = 600秒 和速度= 1000docs / s所以600 * 1000 = 600000
但是我的索引的大小随着时间而增加。而且我知道当你通过查询进行删除时,文档会受到“删除”标签或索引中类似的标签的影响。
我已经看过并尝试了“expungeDeletes = true”这个属性,但我没有注意到我的索引大小发生了很大的变化。
有关索引清除过程的任何信息都将受到赞赏。
感谢。
修改
我知道优化可以完成这项工作,但这是一个很长的操作,我想避免这种情况。
答案 0 :(得分:0)
您可以每10分钟创建一个新的集合/核心,切换到它(加上前一个)并删除最旧的集合/核心(超过10分钟)。