如何修复:http.client.HTTPException:使用来自 python elasticsearch API 的批量时得到超过 100 headers
How to fix: http.client.HTTPException: got more than 100 headers when using bulk from python elasticsearch API
我正在使用 elasticsearch-oss:6.8.3 和 python 3.7
我正在使用批量函数更新我的 ES 中的值,喜欢这样:
for hit in hits:
# hit = {
# '_index': 'my-index',
# '_score': '1.0',
# '_type': '_doc',
# '_id': 'YNi6920BHiHVzMIEjF0_',
# '_source': {}
# }
del hit["_score"]
hit["_source"].update({something_to_update})
hit["_op_type"] = "update"
# Need to deepcopy otherwise as we are in a generator, this will create an id loop in pyhton and raise an ES error
_source = {"doc": deepcopy(hit["_source"])}
# yield result
yield hit
现在它通过了错误:http.client.HTTPException:从 python elasticsearch API
使用批量时得到超过 100 headers
我认为这来自于 http headers 的 python 大小限制。
所以,我想在请求的 body 中以每次点击的形式传递所有 ID,但我不知道该怎么做...
现在我有一个脏修复:
import http.client
http.client._MAXHEADERS = 1000
我正在使用 elasticsearch-oss:6.8.3 和 python 3.7
我正在使用批量函数更新我的 ES 中的值,喜欢这样:
for hit in hits:
# hit = {
# '_index': 'my-index',
# '_score': '1.0',
# '_type': '_doc',
# '_id': 'YNi6920BHiHVzMIEjF0_',
# '_source': {}
# }
del hit["_score"]
hit["_source"].update({something_to_update})
hit["_op_type"] = "update"
# Need to deepcopy otherwise as we are in a generator, this will create an id loop in pyhton and raise an ES error
_source = {"doc": deepcopy(hit["_source"])}
# yield result
yield hit
现在它通过了错误:http.client.HTTPException:从 python elasticsearch API
使用批量时得到超过 100 headers我认为这来自于 http headers 的 python 大小限制。 所以,我想在请求的 body 中以每次点击的形式传递所有 ID,但我不知道该怎么做...
现在我有一个脏修复:
import http.client
http.client._MAXHEADERS = 1000