我正在使用ElasticSearch批量Python API,它是否同时提供同步和异步api?
如果sync您的意思是阻止操作
在Python中,bulk函数是同步的.通过帮助程序的最简单方法
elasticsearch.helpers.bulk(client, actions, stats_only=False, **kwargs)
Run Code Online (Sandbox Code Playgroud)
它返回一个包含摘要信息的元组.因此它是同步的.
如果sync你的意思是一致性
从批量api:
进行批量调用时,可以通过一致性参数在分区中要求最少数量的活动分片
在python中,该bulk函数有一个consistency参数,允许您明确有多少分片必须确认要返回的方法的更改.
如果timeout您指的是一段时间后停止操作的方法
如果您需要限制批量操作的持续时间,则低级别bulk()功能再次是您的朋友.它需要一个timeout参数来添加显式操作超时.
更一般地说,
构造客户端时可以设置全局超时(请参阅Connection的超时参数),或者在每个请求的基础上使用request_timeout(浮点值,以秒为单位)设置全局超时,作为任何API调用的一部分
例如:
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)
Run Code Online (Sandbox Code Playgroud)
作为旁注,我bulk()在java中搜索了调用,尤其是bulk().await().我找不到任何东西.我可以问你的来源吗?
| 归档时间: |
|
| 查看次数: |
1137 次 |
| 最近记录: |