我正在尝试使用以下方法一次更新多个文档:
q = {
"script": {
"inline": "ctx._source.text.class='contact'",
"lang": "painless"
},
"query": {
"match": {
"name": "Contact.txt"
}
}
}
es.update_by_query(body=q, doc_type='document', index='index_name')
如果字段名'name'是'Contact.txt',我想用'text':{'class':'contact'}
但是我遇到错误
TypeError: update_by_query() got an unexpected keyword argument 'doc_type'
类型是文档,所以我很困惑。我试图消除争论,但又遇到另一个错误
elasticsearch.exceptions.TransportError: TransportError(500, 'script_exception', 'runtime error')
答案 0 :(得分:2)
似乎您正在使用弹性版本7.x。不再需要指定doc_type
,因为为7.x删除了映射类型。
以下方法应该起作用:
es.update_by_query(body=q, index='index_name')