恢复elasticsearch文档

Restore elasticsearch documents

先说:我用的是elasticsearch 2.0,安装过delete-by-query plugin

使用这个插件,我删除了一部分文件。删除后,文档将被标记为已删除,您将无法再找到它们。要从磁盘中删除文件,您必须使用 optimizeforcemerge see here.

我没有从磁盘上删除文档。我的问题是,几天后我发现我删除了一些重要文件。

所以我的问题是:我可以恢复被标记的文档吗?

不,您不能恢复被标记的文档。

您不必调用 forcemerge 来确保从磁盘中删除文档(它基本上用于优化索引,即如果您有很多段,那么您调用 forcemerge 来减少段数并使搜索更快。另一个用例是如果您删除大量文档并想快速回收磁盘 space,那么您调用 forcemerge)

文档 marked deleted 将从磁盘中删除,因为 segment merging 进程正在后台进行。

您还可以使用 indices segments api

检查您有多少已删除的文档

This blog对理解ES的删除过程有很大帮​​助