如何使用python批量更新elasticsearch中的单个字段

时间:2018-01-02 07:49:19

标签: python elasticsearch

如何在弹性搜索中执行单个字段批量更新。目前,我正在尝试使用辅助函数,如下所示,

from elasticsearch import Elasticsearch, helpers
for doc in collection_1:

   try:
       uid = int(doc["uid"])
       k.append({
                "_index": "col1",
                "_type" : "col1",
                "_id"   : uid,
                "_source": doc
            })
    except Exception as err:
       print(err)

helpers.bulk(es, k)

E.S版本:2.4

2 个答案:

答案 0 :(得分:2)

请显示您的导入和您的Elasticsearch版本。此外,您的代码缺少对collection1变量的引用。如果您想使用批量助手,您应遵循python bulk helpers documentation

中描述的语法

您应在自己的身体中指定一个字段_op_type并将其设置为update,然后传递您的部分文档。

答案 1 :(得分:0)

您可以使用脚本来更新仅必填字段,而不是全部_source文档

"script": {
    "source": "ctx._source.datetime2=new Date((long)(ctx._source.creationDate+12600000));"
    ,"lang": "painless"
}