gpt4 book ai didi

python - 如何批量更新Elasticsearch中的字段?

转载 作者:行者123 更新时间:2023-12-03 01:24:33 28 4
gpt4 key购买 nike

def update(index):
index = "twitter"
list = ['0oPwSm4BxbPrifDrF7C1', 'r4MOWm4BxbPrifDrjbgR', 'y4NbWm4BxbPrifDrLLhh']
data = []
for i in list:
d = { "update" : {"_id" : i, "_index" : index, "retry_on_conflict" : 3} }
e = { "doc" : {"answer_1" : "test"} }
data.append(json.dumps(d))
data.append(json.dumps(e))
v = "\n".join(data)
response = requests.post('https://url/_bulk', headers='application/x-ndjson',
data=json.loads(v)

我想批量更新不同文档的答案字段。我猜无法以正确的格式发送请求。

最佳答案

批量数据集应如下所示,

{'index': ''}\n
{'your': 'data'}\n
{'index': ''}\n
{'other': 'data'}\n

注意:换行符,即使在最后一行。

您现有的数据对我来说似乎还可以,
{"update": {"_id": "0oPwSm4BxbPrifDrF7C1", "retry_on_conflict": 3, "_index": "twitter"}}
{"doc": {"answer_1": "test"}}
{"update": {"_id": "r4MOWm4BxbPrifDrjbgR", "retry_on_conflict": 3, "_index": "twitter"}}
{"doc": {"answer_1": "test"}}
{"update": {"_id": "y4NbWm4BxbPrifDrLLhh", "retry_on_conflict": 3, "_index": "twitter"}}
{"doc": {"answer_1": "test"}}

您在 request.post()上遇到语法错误,错过了结尾括号 ),需要直接发送 v,而无需使用额外的 json.loads(v)
response = requests.post('https://url/_bulk', 
data=v,
headers={'content-type':'application/json',
'charset':'UTF-8'})
print(response)

关于python - 如何批量更新Elasticsearch中的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58839861/

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