Elasticsearch 如何检查批量索引请求的状态?
Elasticsearch how to check for a status of a bulk indexing request?
我正在对包含国家/地区形状的 Elasticsearch 文档进行批量索引(files here), based on the cshapes 数据集。
geoshapes在"geometry":{"type":"MultiPolygon"
中有很多点,批量请求需要很长时间才能完成(有时无法完成,这是一个单独且已报告的问题)。
由于客户端超时(我使用的是官方ES node.js),我希望有一种方法可以检查批量请求的状态,而不必使用巨大的超时值。
我想要的状态是 active/running、已完成或已中止。我想仅通过查询批处理中的单个文档不会告诉我请求是否已中止。
这可能吗?
Elasticsearch 不提供一种方法来检查正在进行的 Bulk
请求的状态 - 文档参考 here。
首先,使用较小的输入检查您的请求是否成功,这样您就知道您发出请求的方式没有问题。其次,尝试将数据分成更小的块并并行调用 Bulk
API。
您也可以尝试使用更高的 request_timeout
值,但我想这是您不想做的事情。
我不确定这是否正是您要查找的内容,但可能会有所帮助。每当我对我的集群在做什么感到好奇时,我都会查看 tasks API。
任务 API 向您显示集群上当前 运行 的所有任务。它将为您提供有关各个任务的信息,例如任务 ID、开始时间和 运行 时间。这是命令:
curl -XGET http://localhost:9200/_tasks?group_by=parents | python -m json.tool
只是一个旁注提示,说明为什么您的请求可能会花费很多时间(除非您只是在单个批量中索引太多 运行)。如果您已经为地理形状配置了自己的 precision
,还要确保您正在配置 distance_error_pct
,否则不会假定错误,导致文档包含大量术语,需要花费大量时间进行索引。
我正在对包含国家/地区形状的 Elasticsearch 文档进行批量索引(files here), based on the cshapes 数据集。
geoshapes在"geometry":{"type":"MultiPolygon"
中有很多点,批量请求需要很长时间才能完成(有时无法完成,这是一个单独且已报告的问题)。
由于客户端超时(我使用的是官方ES node.js),我希望有一种方法可以检查批量请求的状态,而不必使用巨大的超时值。
我想要的状态是 active/running、已完成或已中止。我想仅通过查询批处理中的单个文档不会告诉我请求是否已中止。
这可能吗?
Elasticsearch 不提供一种方法来检查正在进行的 Bulk
请求的状态 - 文档参考 here。
首先,使用较小的输入检查您的请求是否成功,这样您就知道您发出请求的方式没有问题。其次,尝试将数据分成更小的块并并行调用 Bulk
API。
您也可以尝试使用更高的 request_timeout
值,但我想这是您不想做的事情。
我不确定这是否正是您要查找的内容,但可能会有所帮助。每当我对我的集群在做什么感到好奇时,我都会查看 tasks API。
任务 API 向您显示集群上当前 运行 的所有任务。它将为您提供有关各个任务的信息,例如任务 ID、开始时间和 运行 时间。这是命令:
curl -XGET http://localhost:9200/_tasks?group_by=parents | python -m json.tool
只是一个旁注提示,说明为什么您的请求可能会花费很多时间(除非您只是在单个批量中索引太多 运行)。如果您已经为地理形状配置了自己的 precision
,还要确保您正在配置 distance_error_pct
,否则不会假定错误,导致文档包含大量术语,需要花费大量时间进行索引。