我发现一个index的size可能已经122G了。过一会看,发现却只有117G了。
记录数确实是增加的。
为什么呢,是因为段合并吗?
还是内部什么机制导致的。
我发现一个index的size可能已经122G了。过一会看,发现却只有117G了。
记录数确实是增加的。
为什么呢,是因为段合并吗?
还是内部什么机制导致的。
es中的记录,也就是document是不可变的,每次更新记录,都会将原来的记录删除掉,然后重新创建,这样就积累了很多被删除的数据(es lazy delete 机制),然而es不会立即删除这些数据(直接删除而非更新也是一样的道理),会写入一个.del的文件,他也仍然可以被搜索到,只不过,会在搜索结果返回给客户端的时候,会根据.del文件进行过滤,将已经删除的记录排除。当被删除的文件越来越多,es会在后台自动删除。变会出现你描述的那种情况。
有一点是:es不会立即删除数据,只是将删除的数据加上标识,不做数据返回