测试用到的es查询语法这一篇就够~

4 篇文章 0 订阅
订阅专栏

最近测的项目数据流是先缓存到MQ,可通过es查询,以下是es查询语法做的笔记。
首先es中的search主要分为URI Search和 body Search

在这里插入图片描述

一、查询

1. URI Search

URI Search 查询条件跟在_search?后面,
例如:GET 索引名称/_search?1=1
GET 索引名称 就像是select * from emp
注意这个索引名称可以是一个,也可以是多个

GET /_search
GET data_1/_search
GET data_1,data_2/_search
GET data_*/_search

/_search? 就像是where
1=1 就是查询的条件

URI Search有一些关键字 :

1.1 q 查询

GET data_1/_search?q=name:Judy

意为查询name为Judy的字段

1.2 q+df 指定字段查询

GET data_1/_search?q=Judy&df=name

意为在name字段里找一个值为Judy的

1.3 sort 排序

GET data_1/_search?q=Judy&df=name&sort=age:asc

意为以age正序排列

1. 4 size 展示的条数

GET data_1/_search?q=Judy&df=name&sort=age:asc&size=2

意味展示前2条数据,用es查询时默认是size=10。 如果加上from就是从第几页开始 ,默认是0

GET data_1/_search?q=Judy&df=name&sort=age:asc&size=2&from=6

1.5 timeout 超时时间

GET data_1/_search?q=Judy&df=name&sort=age:asc&size=2&timeout=1s

意为指定超时时间1s,默认是没有超时时间的

2. body Search

有时候参数比较复杂的,就不方便都写在url里,可以直接放在body里,下面是一些查询的写法笔记
query 查询的基本格式

GET data_1/_search
{
    "query":{
        "查询类型":{
            "查询条件":"查询条件值"
        }
    }
}

2.1 match_all 查询全部

GET data_1/_search
{
	"query": {
		"match_all": {}
	}
}

2.2 match 指定查询条件

GET data_1/_search
{
	"query": {
		"match": {
		  "age":"28"
		}
	}
}

2.3 term关键字精确查询

term和 match一样的用法,查询结果我看也一样(要是有老师知道二者区别请告知一下呀)

GET data_1/_search
{
	"query": {
		"term": {
		  "age":"28"
		}
	}
}

也可以写成

GET data_1/_search
{
	"query": {
		"term": {
		  "age":{
		    "value": "28"
		  }
		}
	}
}

需要注意的是trem还有一个兄弟terms 多关键字精确查询

2.4 terms多关键字精确查询

GET data_1/_search
{
	"query": {
		"terms": {
		  "age": ["18","28"]
		}
	}
}

2.5 组合查询query filter

GET data_1/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "age": "20"
          }
        },
        {
          "term": {
            "class": "1"
          }
        }
      ]
    }
  }
}

以下是开发帮我写的一段查询一定时间范围内的数据,关键字我改了下,可以参考写法

GET data_1/_search
{
  "size": 10,
  "query": {
		"bool": {
			"filter": [{
				"range": {
					"statDate": {
						"from": 1668355200000,
						"to": 1668441600000,
						"include_lower": true,
						"include_upper": true,
						"boost": 1.0
					}
				}
			}, {
				"term": {
					"age": {
						"value": 3,
						"boost": 1.0
					}
				}
			}],
			"adjust_pure_negative": true,
			"boost": 1.0
		}
	}
}

二、修改和插入

1.修改

修改直接用put 路径/id,成功结果会提示updated,还会提示是第几个版本。需要注意{}里应该是所有的参数(包括不修改的)
如:

PUT /data_1/_doc/wrmRhIQBypls-PGcmibv
{
          "age" : "21"
        }

在这里插入图片描述

2.插入

2.1一般的
和修改一样,put 路径/id
结果会提示这是created

PUT /date_1/_doc/wrmRhIQBypls-PGcmib7
{
          "age" : "21"

        }

在这里插入图片描述
2.2需要加路由routing的,测试的时候造数据没加,开发说必须要加不然查不出来
在这里插入图片描述

这个在id后面拼上

PUT /date_1/_doc/id?routing=xxx
{  
   "age" : "21"
}

三、删除

1.有条件的删除

POST  /data_1/_delete_by_query
{
  "query": {
    "term": {
      "age": {
        "value": "21"
      }  
    }
  }
}

意味指定删除data_1里age为21的数据

POST  /data_1/_delete_by_query
{
  "query":{
    "match":{
      "_id": "frakg4QBypls-PGc4jpw"
    }
  }
}

意味指定删除data_1里_id为frakg4QBypls-PGc4jpw的数据
在这里插入图片描述

整理就这么多啦,这些语句基本测试够用了。如果后面有使用频率比较高的会更新上来~

四、工作中常用更新

#2023-3-31更新

最近有个项目又是推MQ消费存ES,测试时把这篇笔记拿出来看,发现里面用的查询语句已经不能满足我啦。比如我想查询分组的数据(类似sql里的group by),或者是查询具体的一小部分数据详细的是什么样子的(类似不等于大部分值),在这里记录一下。

当我想查询机构1和机构2…数据对应的数据总计是多少,可以用

1.es的聚合查询(aggs)

具体用法是:

GET /data_1/_search
{
    "size" : 0,
    "aggs" : { 
        "聚合名字(随便取)" : { 
            "terms" : { 
              "参数的名字" : "对应的值"
            }
        }
    }
}

然后

2.es也是支持sql的

POST /_index_name/sql?format=txt
{
  "query":"select * from index_name where id != 1"
}

执行sql就能查出来对应的数据。就是排版不太好看呀。不知有没有老师知道有没有支持es的查询工具可用?
在这里插入图片描述

如果后面有使用频率比较高的会更新上来~

3.es按字段长度查询

2024-5-9更新
最近测试时统计的数据需要统计长度只为10的。这里要用到长度查询

GET data_1/_search
{
  "query": {
    "script": {
      "script": {
        "source": "doc['字段名称'].value.length() == 10",
        "lang": "painless"
      }
    }
  }
}

同理,如果是大于小于 换一下符号就可以。

4.es按字段大小查询

扩展查询某字段大于等于10的数据

GET  data_1/_search
{
  "query":{
  "range":{
      "字段名":{
        "gte": 10
      }
    }
  }
}

gte 是大于等于
gt是大于
lte是小于等于
lt是小于

5.查否语句

就是sql里的not

GET 索引地址/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "match": {
            "字段名": "字段值"
          }
        }
      ]
    }
  }
}

#2024-10-10更新
字段大小和否语句组合查询

GET 索引地址/_search
{
  "query":{
    "bool": {
      "must_not": [
        {
          "match": {
            "字段名": 字段值
          }
        }
      ],
    "filter": {
      "range": {
        "字段名": {
          "gte": 字段值
        }
      }
      }
    }
  }
}
ES 查询用法
lazyboy2的博客
06-04 2万+
通过ES查询表达式(Query DSL),可以实现复杂的查询功能,ES查询表达式主要由JSON格式编写,可以灵活的组合各种查询语句。 还支持一次搜索多个索引 按前缀匹配索引名 查询结果格式 2.query子句 query子句主要用来编写类似SQL的Where语句,支持布尔查询(and/or)、IN、全文搜索、模糊匹配、范围查询(大于小于)。aggs子句,主要用来编写统计分析语句,类似SQL的group by语句sort子句,用来设置排序条件,类似SQL的order by语句ES查询的分页主要通过from和s
ES快速入门,一篇就懂!
qq1592的博客
08-01 8573
Elastic Search 入门前言什么是搜索为什么常用数据库不适合做搜索什么是Lucene什么是Elastic SearchES核心概念ES使用正常启动索引​增删改查ES增加常见问题:ES删除ES查询欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的
ES查询常用语法
jiayoudangdang的博客
01-02 1万+
ES查询常用语法 目录 1. ElasticSearch查询返回结果各字段含义 2. match 查询 3. term查询 4. terms 查询 5. range 范围 6. 布尔查询 6.1 filter加快查询效率的原因 7. boosting query(提高查询) 8. dis_max(最佳匹配查询) 9. 分页 10. 聚合查询【内含实际的demo】
ES常用查询操作】
最新发布
weixin_46356409的博客
08-30 2253
"query": {在这个示例中,查询将匹配field1的值大于10的文档。
ES知识】ES基础查询语法一览
记录,交流,共同进步
10-17 1712
Elasticsearch是一个分布式的RESTful 风格的搜索和数据分析引擎,它使用方便,查询速度快,因此也被越来越多的开发人员使用。本篇文章主要带大家过一下ES的基础查询语法那么到这里ES的基础语法就给大家介绍完了,如果还想了解更多可以去阅读官方的相关文档。看了这一篇,你对于ES的一些常用操作基本就可以满足了。
ES:基础查询语法(简单易懂)
qq_64680177的博客
05-06 2428
query子句:类似于mysql中的where语句,用于定义搜索条件,如等值查询、模糊查询、范围查询等(重点) aggs字句:用于对搜索结果进行各种统计和分组。类似于mysql中的group by。例如可以计算某一字段不同值各自出现的次数,或者根据某个字段的值进行分组。 sort子句:这个就非常显而易见了,是对查询出来的结果进行根据某一规则进行排序。 from和size:这两个是配合使用的,是用来分页的。from定义的是展示的第一条数据的处于结果集的位置(也就是下标),size表示此次展示多大的结果集。这个
ES语法查询
失散多年的测试博客
07-01 9777
ES查询语法
TypeScript 入门看这一篇就够了!
张旭乾 - 全栈工程师/海归
06-09 1701
目录这里写目录标题简介什么是 TypeScript为什么用 TypeScript编写和运行 TS 代码Node TSCDenotsconfig.json基本语法基本类型隐式显式组合类型类型别名对象类型(interface)接口作为函数参数类型数组类型泛型tuple(元组)总结 简介 我第一次使用 TypeScript 是16年在读研的时候,学校的算法课是使用 TypeScript 实现的。当时只知道 TypeScript 是 Angular 开发的必备语言,没想到还能这么通用。后来在写作业的时候,发现 Ty
1.ELK之Elasticsearch&Kibana一篇入门(安装/分片/操作流程/常用语句/分词)
mijichui2153的博客
08-05 7298
elasticsearch安装
java面试看这一篇就够
H_Jason_的博客
09-20 973
java面试技术话术
es查询时间long转date_Elasticsearch 5.x 源码分析(13)探讨ES的long_range,date_range类型,可能不仅只是语法糖...
weixin_36015177的博客
01-14 1197
好久没看书了,最近闲来无事,针对ES的range查询的一些毛刺问题,想办法如何去降低(避免是避免不了了)。无意中在ES的官网看到一篇博客,光看标题肯定就觉的吊炸天了吧。话说Elasticsearch 5.2 开始就引入了integer_range,float_range, long_range,double_range和date_range,好吧,老实说,之前从来没有关心过它。直到有一天突然想到...
ES 查询语法
csdn问鼎
06-20 1163
文章目录数据类型说明样例对象1.精确查询2.模糊查找3.多词匹配4.多列匹配相同的值5.must should用法6.must_not用法7.范围查询排序8.去重9.group by count10.group by sum 数据类型说明 text keyword text存储的时候会分词,keyword不会 样例对象 @Document(indexName = "bu") public class Person { private @Id String id; @Fiel
ES 查询语法 Query DSL
热门推荐
xyc1211的博客
09-18 3万+
Query DSL 搜索条件越来越复杂,url Search会越来越长 这时候就该用 Elasticsearch DLS了,把搜索条件写在请求体中 method Query DSL 等同 URI Search 作用 GET GET / http://IP:9200/ 查看集群信息 GET GET * http://IP:9200/_cat/indices?v 查看所有索引 GET GET {index} http://IP:9200/{索引名称} 查看指定索引 GET.
es查询语法
m0_69798017的博客
03-03 455
es各种查询方式汇总
ES查询语法介绍及举例
m0_54187478的博客
01-22 2027
ElasticsearchES)的查询语法非常强大且灵活,允许执行从简单到复杂的各种搜索操作。ES查询主要基于两种类型:Leaf Query Clauses(叶查询子句)和Compound Query Clauses(复合查询子句)。
ES查询语法总结
马小胖测试历险记
05-20 3060
ES查询语法总结
Elasticsearches查询语句语法详解
cauchy8389的专栏
07-06 2万+
Elasticsearches查询语句语法详解
elasticsearch查询语法
07-28
回答: Elasticsearch查询语法采用基于RESTful风格的接口封装成JSON格式的对象,称之为Query DSL。查询语句可以分为全文查询、词项查询、复合查询、嵌套查询、位置查询和特殊查询等几种类型。其中,全文查询可以使用match查询来进行,如引用\[2\]所示的查询语句,它会匹配"title"字段中包含"Elasticsearch 查询优化"这个短语的文档,并且使用"and"操作符来要求所有的词项都必须存在。而如果使用"or"操作符,就可以要求至少有一个词项存在,如引用\[3\]所示的查询语句。这只是查询语法的一小部分,还有很多其他的查询方式和参数可以用来优化查询结果。 #### 引用[.reference_title] - *1* *2* *3* [Elasticsearches查询语句语法详解](https://blog.csdn.net/cauchy8389/article/details/125646274)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
写文章

热门文章

  • 用python执行selenium代码时Message: unknown error: Failed to create Chrome process. 10295
  • 用jmeter压测tcp 7085
  • python文件换行和取消文件自动换行 5369
  • fiddler展示接口的响应时间 4882
  • 测试用到的es查询语法这一篇就够~ 3309

分类专栏

  • 测试 4篇
  • fiddler 4篇
  • python 14篇

最新评论

  • python把excel数据一列写成两列

    小红帽子Alkaid: 哪里不显示?没有打印到控制台的代码

  • python把excel数据一列写成两列

    是Aboo: 为什么执行完,什么也不显示呢,数据读不出来

  • Photoshop批量处理图片分辨率

    小红帽子Alkaid: 某一天发现mtxx也已经非常好用了。。。

  • fiddler展示接口的响应时间

    小鱼不喝水: 太感谢博主了。无以为报,就求个一心一意表情包

  • 用python制作的软件2-qt前端页面设计

    CSDN-Ada助手: 恭喜你写了第17篇博客!看到你用Python制作的软件并设计了Qt前端页面,真是令人惊叹!你的坚持和创作热情值得赞赏。对于下一步的创作,我谦虚地建议你可以考虑分享一些关于软件的性能优化或者用户体验方面的经验,这样可以进一步提升你的读者的使用体验。期待你的下一篇博客!

大家在看

  • 终于整理完了,全网最全JAVA面试八股文总结!
  • 【02】Windows特殊权限-Trustedinstaller
  • 屋面通风器安装方案及流程
  • JavaWeb技术在Spring Boot在线考试系统中的应用
  • MySQL命令行窗口执行update语句,受影响行数为1,但没有得到预期效果

最新文章

  • jmeter录制脚本做压力测试
  • fiddler限制网速的操作
  • Photoshop批量处理图片分辨率
2024年7篇
2023年11篇
2022年3篇
2021年4篇
2020年3篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

深圳坪山网站建设公司娄底网站优化霸屏达州做优化网站咨询便宜的优化网站怎么优化移动网站排名网站seo前端优化网站seo优化专卖淘宝流量优化网站网络营销网站推广优化价格宁国网站排名优化布吉大型网站优化伊滨区网站优化seo网站优化招商武陟县网站关键词优化铜梁网站优化推广网站优化的维护方式嘉兴网站优化方案北海整站网站优化电器网站优化优势乐山优化网站软件企业网站优化采选火30星外贸网站优化是怎么做的雄安网站seo优化西安网站排名优化软件服务平顶山网站优化多少钱网站推广优化捌金手指下拉太原网站优化建议两个域名同一个网站做优化济南网站优化朋少大港网站优化咨询电话网站怎样优化网页香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化