python Elasticsearch update

备注:

如果更新没有成功,原因有几个:

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法网奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值