elasticsearch 中我观察了一下shard的size会减少?

我发现一个index的size可能已经122G了。过一会看,发现却只有117G了。

记录数确实是增加的。

为什么呢,是因为段合并吗?

还是内部什么机制导致的。

阅读 2.9k
2 个回答

有一点是:es不会立即删除数据,只是将删除的数据加上标识,不做数据返回

es中的记录,也就是document是不可变的,每次更新记录,都会将原来的记录删除掉,然后重新创建,这样就积累了很多被删除的数据(es lazy delete 机制),然而es不会立即删除这些数据(直接删除而非更新也是一样的道理),会写入一个.del的文件,他也仍然可以被搜索到,只不过,会在搜索结果返回给客户端的时候,会根据.del文件进行过滤,将已经删除的记录排除。当被删除的文件越来越多,es会在后台自动删除。变会出现你描述的那种情况。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进