Elasticsearch如何检查批量索引请求的状态?

时间:2017-08-01 15:16:09

标签: node.js elasticsearch bulk

我根据files here数据集批量索引包含国家/地区形状(cshapes)的Elasticsearch文档。

地理位置在"geometry":{"type":"MultiPolygon"中有很多分数,批量请求需要很长时间才能完成(有时无法完成,这是一个单独且已经报告过的问题)。

由于客户端超时(我使用官方ES node.js),我想有办法检查批量请求的状态,而不必使用巨大的超时值。

我想要的是拥有活动/跑步,完成或中止等状态。我想只需通过查询批处理中的单个文档就不会告诉我请求是否已中止。

这可能吗?

3 个答案:

答案 0 :(得分:0)

Elasticsearch没有提供检查正在进行的Bulk请求文档参考here状态的方法。

首先,使用较小的输入检查您的请求是否成功,因此您知道发出请求的方式没有问题。其次,尝试将数据划分为较小的块并同时调用它们上的Bulk API。

您也可以尝试使用更高的request_timeout值,但我想这是您不想做的事情。

答案 1 :(得分:0)

我不确定这是否正是您所寻找的,但可能会有所帮助。每当我对我的集群正在做什么感到好奇时,我都会查看tasks API

任务API显示当前在群集上运行的所有任务。它将为您提供有关各个任务的信息,例如任务ID,开始时间和运行时间。这是命令:

curl -XGET http://localhost:9200/_tasks?group_by=parents | python -m json.tool

答案 2 :(得分:0)

只是一个侧面提示提示,为什么您的请求可能需要花费很多时间(除非您只是在单个批量运行中索引太多)。如果您已为地理形状配置了自己的precision,请确保配置distance_error_pct,否则不会出现错误,从而导致包含大量术语的文档需要花费大量时间进行索引。 / p>