es之增删改查
查询
index:
GET task_results/_search/
普通查询:
{"query":{"bool":{"must":[{"match":{"task_id":"xxx"}}]}}}
json嵌套查询:
{"query":{"nested":{"path":"cloud_result","query":{"bool":{"must":[{"match":{"cloud_result.label":xx}}]}}}}}
range 查询:
{"from":0,"size":10,"query":{"nested":{"path":"cloud_result","query":{"bool":{"must":[{"match":{"cloud_result.label":xx}},{"range":{"cloud_result.confidence":{"gte":0.8}}}]}}}}}
同时查询多个值,类型mysql中的in:
{"query":{"bool":{"must":[{"match":{"project_id":"1"}},{"terms":{"incident_type":[1,2]}}]}}}
排序:
{"from":0,"size":10,"query":{"nested":{"path":"cloud_result","query":{"bool":{"must":[{"match":{"cloud_result.label":113718644}},{"range":{"cloud_result.confidence":{"gte":0.8}}}]}}}},"sort":{"create_at":{"order":"desc"}}}
json嵌套+普通字段查询:
{"query":{"bool":{"must":[{"nested":{"path":"cloud_result","query":{"term":{"cloud_result.label":xxx}}}},{"term":{"project_id":29}}]}}}
match和term查询的区别
match
- match的查询词会被分词
- match_phrase 不会分词
- match_phrase 可对多个字段进行匹配
term
- term代表完全匹配,不进行分词器分析
- term 查询的字段需要在mapping的时候定义好,否则可能词被分词。传入指定的字符串,查不到数据
bool联合查询
- must should must_not
- must 完全匹配
- should 至少满足一个
- must_not不匹配
es聚合查询:
https://blog.csdn.net/qq_43588909/article/details/126381390
根据project_id分组:
{"size":0,"aggs":{"aggs.demo01":{"terms":{"field":"project_id","size":10,"order":{"_count":"asc"//根据统计条数升序,desc降序}}}}}
聚合后having:
{"size":0,"aggs":{"groupName":{"terms":{"field":"source"},"aggs":{"countSource":{"terms":{"field":"source","order":{"_count":"asc"}}},"having":{"bucket_selector":{"buckets_path":{"orderCount":"_count"},"script":{"source":"params.orderCount >1 "}}}}}}}
基于查询结果聚合: 查询project_id=12 and cloud_result.label=694547 group source
{"size":0,"query":{"bool":{"must":[{"nested":{"path":"cloud_result","query":{"match":{"cloud_result.label":xxx}}}},{"match":{"project_id":12}}]}},"aggs":{"groupName":{"terms":{"field":"source"},"aggs":{"countSource":{"terms":{"field":"source","order":{"_count":"asc"}}},"having":{"bucket_selector":{"buckets_path":{"orderCount":"_count"},"script":{"source":"params.orderCount >1 "}}}}}}}
聚合后查询:
{"query":{"range":{"Price":{"gte":50,"lte":500}}},"aggs":{"tags_bucket":{"terms":{"field":"Tags.keyword"}}},"post_filter":{"term":{"Tags.keyword":"xx"}}}
更新
1.覆盖式更新(会把旧数据替换掉)
PUT student-001/_doc/1?refresh=true
{"id":1,"name":"student-1","year":1}
2.部分更新
把 id 为1的数据的 name 字段更新
POST student-001/_update/1?refresh=true
{"doc":{"name":"student-123"}}
如果数据不存在,则作为新数据添加;如果数据已经存在,则更新旧数据,那么我们可以添加参数 doc_as_upsert
POST student-001/_update/1?refresh=true
{"doc":{"name":"student-23"},"doc_as_upsert":true}
使用脚本的方式来更新数据
POST student-001/_update/1?refresh=true
{"script":{"source":"ctx._source.name='student-1'"}}
新增
批量添加数据:
PUT edms_electric_fence_alarm_v1/_doc/18
{"event_id":"xxx","vehicle_id":"xx","vehicle_name":"","type":"ANOMALY_TYPE_OUTSIDE_AREA","location":{"type":"COORDINATE_SYSTEM_LLA","coordinate_system":"","x":121,"y":30,"z":0},"area_id":"xxx","area_points":[],"fence_id":"","fence_name":""}
删除
根据查询条件删除:
POST task_results/_delete_by_query
{"query":{"bool":{"must":[{"match":{"project_id":12}},{"match":{"organization_id":"maint"}}]}}}
es之增删改查的更多相关文章
- kibana的Dev Tool中如何对es进行增删改查
kinaba Dev Tool中对es(elasticSearch)进行增删改查 一.查询操作 查询语句基本语法 以下语句类似于mysql的: select * from xxx.yyy.topic ...
- es数据增删改查
设置最大查询条数 curl -XPUT 'http://10.121.8.5:9200/zdl_mx_shzt_ztdf/_settings' -d'{"index":{" ...
- 【ES】ElasticSearch初体验之使用Java进行最基本的增删改查~
好久没写博文了, 最近项目中使用到了ElaticSearch相关的一些内容, 刚好自己也来做个总结. 现在自己也只能算得上入门, 总结下自己在工作中使用Java操作ES的一些小经验吧. 本文总共分为三 ...
- ES增删改查入门1
1.RESTful接口使用方法 为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful接口URL的格式: http://localhost:9200/ ...
- Es学习第三课, ElasticSearch基本的增删改查
前面两课我们了解了ES的基本概念并且学会了安装ES,这节课我们就来讲讲ES基本的增删改查:ES主要对外界提供的是REST风格的API,我们通过客户端操作ES本质上就是API的调用.在第一课我们就讲了索 ...
- Es图形化软件使用之ElasticSearch-head、Kibana,Elasticsearch之-倒排索引操作、映射管理、文档增删改查
今日内容概要 ElasticSearch之-ElasticSearch-head ElasticSearch之-安装Kibana Elasticsearch之-倒排索引 Elasticsearch之- ...
- elasticsearch索引的增删改查入门
为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful接口URL的格式: http://localhost:9200/<index>/&l ...
- 分布式搜索elasticsearch 索引文档的增删改查 入门
1.RESTful接口使用方法 为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful接口URL的格式: http://localhost:9200/ ...
- ElasticSearch6(三)-- Java API实现简单的增删改查
基于ElasticSearch6.2.4, Java API创建索引.查询.修改.删除,pom依赖和获取es连接 可查看此文章. package com.xsjt.learn; import java ...
- [py]django强悍的数据库接口(QuerySet API)-增删改查
django强悍的数据库接口(QuerySet API) 4种方法插入数据 获取某个对象 filter过滤符合条件的对象 filter过滤排除某条件的对象- 支持链式多重查询 没找到排序的 - 4种方 ...
随机推荐
- 使用pycharm专业版(支持远程调试及运行)如何运行mpi的代码呢???(mpi4py的代码)
问题如题: 请注意:这里pycharm专业版的远程调试及运行该如何设置不进行介绍. 由于mpi进程启动是需要执行mpiexec或mpirun命令的,然而在pycharm中我们只能远程调用Python命 ...
- 【转载】解决Nvidia-smi没有进程但是显存不释放的问题
----------------版权声明:本文为CSDN博主「打拳的土豆」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn ...
- pytorch中使用vutils对多张图像进行拼接 (import torchvision.utils as vutils)
1.png 2.png 在pytorch中使用torchvision的vutils函数实现对多张图片的拼接.具体操作就是将上面的两张图片,1.png和2.png的多张图片进行拼接形成一张图片,拼接后的 ...
- 零基础学习人工智能—Python—Pytorch学习(一)
前言 其实学习人工智能不难,就跟学习软件开发一样,只是会的人相对少,而一些会的人写文章,做视频又不好好讲. 比如,上来就跟你说要学习张量,或者告诉你张量是向量的多维度等等模式的讲解:目的都是让别人知道 ...
- list 中的Stream 累加操作
ublic class Test { public static void main(String[] args) { double sum = 860.10 + 1808.09; double su ...
- 结构体中vector的初始化报错:expected identifier before numeric constant
结构体中vector的初始化报错:expected identifier before numeric constant 结构体中vector初始化 起因: 我想在结构体中初始化含有3个元素的vect ...
- Maven经验分享(五)Maven拷贝资源
上一章介绍使用ant拷贝资源,这里介绍maven拷贝资源,使用maven-resources-plugin插件. <plugin> <groupId>org.apache.ma ...
- Linux入门的基础知识点,有这篇就够了(持续更新)
很多粉丝给一口君留言,想要学习Linux资料,其实关注一口君的公众号,后台回复 1024 ,就有很多非常不错的电子书,但是有一个问题,很多粉丝是初学者,而这一大堆电子书,估计随便一本,还没看完就基本上 ...
- GC终结标记 SuspendEE 是怎么回事
一:背景 1. 讲故事 写这篇是起源于训练营里有位朋友提到了一个问题,在 !t -special 输出中有一个 SuspendEE 字样,这个字样在 coreclr 中怎么弄的?输出如下: 0:000 ...
- 万丈高楼平地起:UML类图
UML类图 UML类图 是一种静态的结构图,描述了系统的类的集合,类的属性和类之间的关系,可以简化了人们对系统的理解.UML类图 是系统分析和设计阶段的重要产物,是系统编码和测试的重要模型. 图示 类 ...