14-17-elasticsearch-条件查询及分页

03-elasticsearch-条件查询及分页:

条件查询

http://127.0.0.1:9200/shopping/_search?q=category:小米

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hp06K1tR-1668850265489)(png/1620146141810.png)]

body类型的全量查询

http://127.0.0.1:9200/shopping/_search
{
    "query":{
        "match_all":{
        }
    }
}

分页查询:

range 查询找出那些落在指定区间内的数字或者时间。range 查询允许以下字符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iW11H1zN-1668850265490)(png/1620184465029.png)]

{
     "query": {
     "range": {
     "age": {
     "gte": 30,
     "lte": 35
 			}
 		}
 	} 
 }

单字段排序

sort 可以让我们按照不同的字段进行排序,并且通过 order 指定排序的方式。desc 降序,asc

升序。 在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search

{
 "query": {
 "match": {
 "name":"zhangsan"
 }
 },
 "sort": [{
 "age": {
 "order":"desc"
 }
 }]
}

多字段排序

假定我们想要结合使用 age 和 _score 进行查询,并且匹配的结果首先按照年龄排序,然后

按照相关性得分排序 在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search

{
	 "query": {
	 "match_all": {}
	 },
	 "sort": [
	 {
		 "age": {
		 "order": "desc"
		}
	 },
	 {
		 "_score":{
		 "order": "desc"
		 }
	 }
	] 
 }

高亮查询

在进行关键字搜索时,搜索出的内容中的关键字会显示不同的颜色,称之为高亮。

Elasticsearch 可以对查询内容中的关键字部分,进行标签和样式(高亮)的设置。

在使用 match 查询的同时,加上一个 highlight 属性:

pre_tags:前置标签

post_tags:后置标签

fields:需要高亮的字段

title:这里声明 title 字段需要高亮,后面可以为这个字段设置特有配置,也可以空

在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search

分页查询

from:当前页的起始索引,默认从 0 开始。 from = (pageNum - 1) * size

size:每页显示多少条 在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search

 {"query": {
 "match_all": {}
 },
 "sort": [
 {
 "age": {
 "order": "desc"
 }
 }
 ],
 "from": 0,
 "size": 2
}

聚合查询

聚合允许使用者对 es 文档进行统计分析,类似与关系型数据库中的 group by,当然还有很

多其他的聚合,例如取最大值、平均值等等。 对某个字段取最大值 max 。在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T7uZlJjs-1668850265491)(png/1620184856550.png)]

{
    "aggs":{//聚合操作
        "price_avg":{//平均
            "avg":{//平均值
                "field":"price"//分组字段
            }
        }
    },
    "size":0//不查原始数据
}

State 聚合

stats 聚合,对某个字段一次性返回 count,max,min,avg 和 sum 五个指标

在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search

{
   "aggs":{
   "stats_age":{
   "stats":{"field":"age"}
     }
    },
     "size":0
}

桶聚合查询

桶聚和相当于 sql 中的 group by 语句 。terms 聚合,分组统计在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search

{
 "aggs":{
 "age_groupby":{
 "terms":{"field":"age"}
 }
 },
 "size":0
}

和相当于 sql 中的 group by 语句 。terms 聚合,分组统计在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search

{
 "aggs":{
 "age_groupby":{
 "terms":{"field":"age"}
 }
 },
 "size":0
}

参考来自:https://space.bilibili.com/302417610?spm_id_from=333.337.0.0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值