如何在弹性搜索中执行单个字段批量更新。目前,我正在尝试使用辅助函数,如下所示,
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
答案 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"
}