首先要说:我使用elasticsearch 2.0
并安装了delete-by-query plugin
.
使用此插件,我删除了部分文档。删除后,文档被标记为已删除,您再也找不到它们了。要从磁盘中删除文档,您必须使用optimize
或forcemerge
查看此处。
我不会从磁盘中删除文件。我的问题是,几天后我意识到我删除了一些导入文件。
所以我的问题是:我可以恢复标记的文件吗?
首先要说:我使用elasticsearch 2.0
并安装了delete-by-query plugin
.
使用此插件,我删除了部分文档。删除后,文档被标记为已删除,您再也找不到它们了。要从磁盘中删除文档,您必须使用optimize
或forcemerge
查看此处。
我不会从磁盘中删除文件。我的问题是,几天后我意识到我删除了一些导入文件。
所以我的问题是:我可以恢复标记的文件吗?
不,您无法恢复标记的文档。
您不必调用forcemerge
以确保从磁盘中删除文档(它基本上用于优化索引,即如果您有很多段,那么您调用forcemerge
以减少段数并加快搜索速度。另一个用例是如果您删除大量文档并想快速回收磁盘空间,然后调用forcemerge
)
由于进程在后台进行,文档marked deleted
将从磁盘中删除。segment merging
您还可以检查您有多少已删除的文档indices segments api
本篇博客对理解ES的删除过程有很大帮助