根据字段定期从 Elasticsearch 索引中删除文档

Periodically remove documents from Elasticsearch index depending on field

假设我有一个名为 car 的索引。 car中的文件有以下字段:

现在我想定期删除 decommissionedtrue 的所有文档。

有没有办法在 Elasticsearch 服务器上配置这样的作业?还是我每次要清理索引时都必须执行 REST 调用?

您需要构建一个按查询删除来管理它,然后在 Elasticsearch 之外将其安排为 运行 每隔一段时间。 Elasticsearch 没有内置的调度程序来执行此操作

但是,就上面 Yuri 的评论而言,为什么不留下它们呢?您仍然可以运行 分析数据

实际上,您可以为此目的使用 Watcher。

这不是他们制作的目的,但您可以在那里设置 Webhook 操作以通过您的搜索输入 returns 并执行 REST 调用以按 ID 删除不需要的文档。

这样您就可以将其保存在您的 Elastic 集群中。

P.S。虽然重新考虑您的“数据模型”是有意义的,但真的。

Elasticsearch 与您的常规 RDBMS 不同,选择性删除可能会非常昂贵。

最好让他们坐在那里并简单地修改您的查询以确认该属性。