我正在AWS上使用Elasticsearch 6.2在Java 8中即时执行查询和重新索引。我还将通过Jest客户端将ES集群与客户端库提供的Java API进行接口连接。我将查询结果返回给用户,并使用这些结果在后台启动重新索引操作以供以后使用。重新索引操作可以是半长时间运行,并且耗时仅数秒或数秒。我显然知道我的新索引名称是什么,但是在服务器上的无状态应用程序中工作,我无法保存从reindex API返回的任务ID以便以后查询,我需要通过其他方式进行查找。做一点研究,我在Kibana遇到了这个API调用:
GET /_tasks?actions=*reindex
,它将返回当前正在重新编制索引的所有任务,或返回一个空列表。从那里,我可以获取父任务ID并查询其状态。这可能是一个问题,因为我可能一次在ES群集上进行多个重新索引操作。
对我的问题是否有更聪明或更直接的方法?