Elasticsearch-使用按查询更新在doc_type上给出错误

时间:2019-05-20 03:59:01

标签: python elasticsearch

我正在尝试使用以下方法一次更新多个文档:

    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')

1 个答案:

答案 0 :(得分:2)

似乎您正在使用弹性版本7.x。不再需要指定doc_type,因为为7.x删除了映射类型。

以下方法应该起作用:

es.update_by_query(body=q, index='index_name')