备注:
如果更新没有成功,原因有几个:
1.更改字段在实际中没有,
2.多层结构要用用字典来更新,不能用car.color方式更新。
res=es.update(index=index, doc_type=doc_type, id=data['_id'],
# body=json.dumps({"doc": {"capture_num": (last_capturenum-capturenum), 'flag': 0}}))
body={"doc": {"capture_num": 0, 'flag': 0,"captureInfo":{"frontFileName":last_data['_source']['fileName'][:-4]}}})
print(res)
res=es.update(index=index, doc_type=doc_type, id="04a0aa5003c6455f829a7be6725dd9ea-1545235736581", body={"doc": {"capture_num": 88,'flag':1}})
update_by_query:
import datetime
import json
import sys
from elasticsearch import Elasticsearch
es = Elasticsearch(['192.168.55.90:9200'])
source_arr = ["uri","photo.tempTime",#"coordinateList.height",
"camera.deviceId",
"photo.capturenum",
"fileName","flag","captureInfo.currentDistinguishNum"]
source_arr = ["fileName"]
if __name__ == '__main__':#把有重复覆盖的更新为-2,需要一个txt
today = datetime.date.today()
yesterday = today - datetime.timedelta(days=1)
yesterday = int(yesterday.strftime("%Y%m%d"))
today = int(today.strftime("%Y%m%d"))
tags=99
updateBody = {
"query": {
"bool": {
"must": [
{"term": {"_id": "04a0aa5003c6455f829a7be6725dd9ea-1545235736581"}}
],
}
},
"script": {
"inline": "ctx._source.capture_num = params.tags",
"params": {
"tags": tags
},
"lang": "painless"
}
}
index = "ccat1"
doc_type = 'demo0'
res=es.update_by_query(index=index, doc_type=doc_type, body=updateBody)
print(res)