elasticsearch:我如何告诉 _reindex api 在源索引仍在接收新文档的同时继续索引文档?

elasticsearch : How can i tell _reindex api in to continue indexing docs while source index still receiving new docs?

我每天都创建索引,这些索引由每天每秒收集日志的代理填充,我正在使用 _reindex api 将它们(按字段)重新索引到新索引。

我如何告诉 _reindex api 在源索引仍在接收新文档时继续重新索引?

非常感谢任何帮助!

谢谢

您不能强制重新索引 API 联机以重新索引新收到的文档。

但我有解决办法。您可以将日期字段 (index_time) 添加到源索引。将每小时 cron 作业写入 运行 重新索引 API 并通过查询获取最后一小时的索引文档 index_time.

POST _reindex
{
  "source": {
    "index": "my-index-000001",
     "query": {
        "filter" :{
            "query": {
                "range": {
                   "index_time": {"gte" : "now-1h"}
                          }
                      }
                   } 
               }
  },
  "dest": {
    "index": "my-new-index-000001"
  }
}