当前位置: 首页 > news >正文

python elasticsearch update by query

  1. 创建索引以及添加数据
PUT test
{"mappings": {"properties": {"test":{"type": "nested"}}
}}GET test/_mappingPUT test/_doc/1
{"test":{"name":"ellis","age":100}
}
  1. elasticsearch包
from elasticsearch import Elasticsearch
conn = Elasticsearch(hosts=['192.168.214.133'],port=31200,http_auth="elastic:ellischen")update_by_query = {"query": {"nested": {"path": "test","query": {"term": {"test.name": {"value": "ellis"}}}}},"script": {"source": "ctx._source['test']['age']+=1","params": {"age":101}, "lang": "painless"}
}conn.update_by_query(index='test',body=update_by_query)
  1. elasticsearch-dsl包
from elasticsearch_dsl import connections
from elasticsearch_dsl import Search
from elasticsearch_dsl import Q as esQ
from elasticsearch_dsl import UpdateByQuery
conn = connections.create_connection(hosts=['192.168.214.133'],port=31200,http_auth="elastic:ellischen")
source = "ctx._source['test']['age']=params.age"
params = {"age":110}
query_body=esQ('nested',**{"path":'test',"query":esQ('term',**{"test.name":{"value":"ellis"}})})
update_by_query = UpdateByQuery().using(conn).index('test').query(query_body).script(source=source,params=params)update_by_query.execute()
  1. from_dict 方法
from elasticsearch_dsl import connections
from elasticsearch_dsl import Search
from elasticsearch_dsl import Q as esQ
from elasticsearch_dsl import UpdateByQuery
conn = connections.create_connection(hosts=['192.168.214.133'],port=31200,http_auth="elastic:ellischen")
# source = "ctx._source['test']['age']=params.age"
# params = {"age":110}
# query_body=esQ('nested',**{"path":'test',"query":esQ('term',**{"test.name":{"value":"ellis"}})})
# update_by_query = UpdateByQuery().using(conn).index('test').query(query_body).script(source=source,params=params)# update_by_query.execute()update_by_query = {"query": {"nested": {"path": "test","query": {"term": {"test.name": {"value": "ellis"}}}}},"script": {"source": "ctx._source['test']['age']+=1","params": {"age":101}, "lang": "painless"}
}
search = UpdateByQuery().from_dict(update_by_query).using(conn).index('test')
search.execute()
http://www.lryc.cn/news/113316.html

相关文章:

  • Linux搭建pikachu靶场(以centos为例)
  • git clone 登录 github
  • 迭代器模式(C++)
  • ES智能推荐
  • 【Rust】Rust学习 第五章使用结构体组织相关联的数据
  • EtherCAT转Profinet网关连接西门子PLC与凯福科技总线步进驱动器通讯
  • 秋招算法备战第39天 | 62.不同路径、63. 不同路径 II
  • Docker网络模型使用详解(2)Docker网络模式
  • Docker DCT
  • 【owt】erzio的handler和pipeline
  • Dockerfile构建mysql
  • QT-如何生成唯一ID
  • Go语言基础: Switch语句、Arrays数组、Slices切片 详细教程案例
  • 从URL取值传给后端
  • API接口用例生成器
  • 最新AI创作系统ChatGPT源码V2.5.8/支持GPT4.0+GPT联网提问/支持ai绘画Midjourney+Prompt+MJ以图生图+思维导图生成!
  • 【Vxworks】映射物理地址为虚拟地址,并获取此地址的存放值
  • C/C++可变参数列表
  • MongoDB基本命令使用
  • uniapp 微信小程序 上下滚动的公告通知(只取前3条)
  • OSPF在MGRE上的实验
  • 什么样的跨网文件安全交换系统 可实现安全便捷的文件摆渡?
  • C语言memset函数的作用
  • 暑假刷题第23天--8/7
  • Double DQN缓解动作价值的高估问题
  • 【C#学习笔记】内存管理
  • 面试之快速学习c++11- 列表初始化和 lambda匿名函数的定义
  • CI/CD—Docker初入门学习
  • 多线程的创建,复习匿名内部类,Thread的一些方法,以及lambda的变量捕捉,join用法
  • 瑞吉外卖系统05