gpt4 book ai didi

elasticsearch-py - 在 Python 中同步/异步插入或更新 ElasticSearch

转载 作者:行者123 更新时间:2023-12-05 00:58:00 25 4
gpt4 key购买 nike

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

最佳答案

如果通过 sync您的意思是阻塞操作

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

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

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

如果通过 sync你的意思是一致性

来自 bulk api :

When making bulk calls, you can require a minimum number of active shards in the partition through the consistency parameter



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

如果通过 timeout你的意思是一种在一段时间后停止操作的方法

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

更普遍的是,

Global timeout can be set when constructing the client (see Connection‘s timeout parameter) or on a per-request basis using request_timeout (float value in seconds) as part of any API call



例如:

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)

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com