elasticsearch:我如何 运行 每小时 cron 作业调用 _reindex api?

elasticsearch : how can i run hourly cron job to call _reindex api?

我想知道如何创建 & 运行 cron 作业以每小时调用 _reindex api?

我尝试了以下方法:

POST _reindex?wait_for_completion=false
{
  "trigger": {
    "schedule": {
      "interval": "1h"
    }
  },
  "source": {
    "index": "index_src"
  },
  "dest": {
    "index": "index_dest"
  }
}

但我得到了以下信息:

"reason" : "[2:5] [reindex] unknown field [trigger]"

非常感谢任何帮助!

仅使用 Elasticsearch API 无法做到这一点。对重新索引 API 的请求将导致时间点操作;它不会创建重复任务。 如错误消息所述,没有选项可以在重建索引请求中设置计划。(有关所有可用设置,请参阅 https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html)。

您需要编写一个脚本(例如,如果您在 linux 主机上,则在 bash 中)定期调用重建索引 API。另一种选择是编写一个简单的应用程序,该应用程序结合使用 Elasticsearch DSL 和调度 tool/framework,例如 Spring Boot 的 @Scheduled-annotation。

希望能帮到你