我正在使用 ElasticSearch 批量 Python API,它是否同时提供同步和异步 API?

最佳答案

如果 sync 是指阻塞操作

在 Python 中,bulk 函数是同步的。通过 helper 的最简单方法

elasticsearch.helpers.bulk(client, actions, stats_only=False, **kwargs)

它返回一个带有摘要信息的元组。因此它是同步的。

如果 sync 你的意思是一致性

bulk api :



在 python 中, bulk function 有一个 consistency 参数,允许你明确有多少分片必须确认方法返回的更改。

如果 timeout 您的意思是在一段时间后停止操作的方法

如果您需要限制批量操作的持续时间,那么低级 bulk() 函数再次是您的 friend 。它需要一个 timeout 参数来添加显式操作超时。

更普遍的是,



例如:

from elasticsearch import Elasticsearch
es = Elasticsearch()
# only wait for 1 second, regardless of the client's default
es.cluster.health(wait_for_status='yellow', request_timeout=1)

作为旁注,我在 java 中搜索了 bulk() 调用,尤其是 bulk().await() 。我找不到任何东西。我可以问你你的来源吗?

关于elasticsearch-py - 在 Python 中同步/异步插入或更新 ElasticSearch,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33747628/

10-13 06:07