Elasticsearch专栏-6.es基本用法-聚合查询

这篇具有很好参考价值的文章主要介绍了Elasticsearch专栏-6.es基本用法-聚合查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

平均值、总和、最大、最小、数量

在es中,所有的聚合查询都是放在aggs中进行的。平均值、总和、最大、最小、数量对应的关键字分别是:avg、sum、max、min、value_count

POST /bank/_search
{
	"query": {
		"match": {
			"address": "mill"
		}
	},
	"aggs": {
		"ageAvg": {
			"avg": {
				"field": "age"
			}
		},
		"ageSum": {
			"sum": {
				"field": "age"
			}
		},
		"ageMax":{
		  "max": {
		    "field": "age"
		  }
		},
		"ageMin":{
		  "min": {
		    "field": "age"
		  }
		},
		"ageCount":{
		  "value_count": {
		    "field": "age"
		  }
		}
	},
	"size": 0
}

Elasticsearch专栏-6.es基本用法-聚合查询

分组

分组用到的关键字是terms

POST /bank/_search
{
	"query": {
		"match": {
			"address": "mill"
		}
	},
	"aggs": {
		"ageGroup": {
			"terms": {
				"field": "age",
				"size": 3
			}
		}
	},
	"size": 0
}

Elasticsearch专栏-6.es基本用法-聚合查询

上面语句中的size:3,指的是分组后,只展示前三个分组内容。size:0,指的是所有query查询结果,也就是原始数据,不需要展示。此外,还可以对分组内容进行排序。
1.分组后,按分组内的文档数量排序

POST /bank/_search
{
	"aggs": {
		"ageGroup": {
			"terms": {
				"field": "age",
				"order": {
				  "_count": "asc"
				}
			}
		}
	},
	"size": 0
}

Elasticsearch专栏-6.es基本用法-聚合查询

2.分组后,按分组字段排序

POST /bank/_search
{
	"aggs": {
		"ageGroup": {
			"terms": {
				"field": "age",
				"order": {
				  "_key": "desc"
				}
			}
		}
	},
	"size": 0
}

Elasticsearch专栏-6.es基本用法-聚合查询

3.显示分组后,文档数量大于60的

POST /bank/_search
{
	"aggs": {
		"ageGroup": {
			"terms": {
				"field": "age",
				"min_doc_count": 60
			}
		}
	},
	"size": 0
}

Elasticsearch专栏-6.es基本用法-聚合查询

分组+子聚合

先按age分组,之后统计分组内的平均值和总和。

POST /bank/_search
{
	"query": {
		"match": {
			"address": "mill"
		}
	},
	"aggs": {
		"ageAgg": {
			"terms": {
				"field": "age",
				"size": 3
			},
			"aggs": {
				"ageAvg": {
					"avg": {
						"field": "age"
					}
				},
				"ageSum": {
					"sum": {
						"field": "age"
					}
				}
			}
		}
	},
	"size": 0
}

Elasticsearch专栏-6.es基本用法-聚合查询

分段分组+子聚合

先按age分组,分成18-28、28-38两组。之后统计各组的最小值和平均值。

POST /bank/_search
{
	"query": {
		"match": {
			"address": "mill Road"
		}
	},
	"aggs": {
		"ageGroup": {
			"range": {
			  "field": "age",
			  "ranges": [
			    {
			      "from": 18,
			      "to": 28
			    },
			    {
			      "from": 28,
			      "to": 38
			    }
			  ]
			},
			"aggs":{
			  "ageMin":{
			    "min": {
			      "field": "age"
			    }
			  },
			  "ageAve":{
			    "avg": {
			      "field": "age"
			    }
			  }
			}
		}
	},
	"size": 0
}

Elasticsearch专栏-6.es基本用法-聚合查询

指定分组+聚合

查询全部,但分组时候,只统计age=30的所有文档的平均值,最大最小等数据,用stats关键字代表。

POST /bank/_search
{
	"aggs": {
		"ageGroup": {
			"filter": {
			  "term": {
			    "age": "30"
			  }
			},
			"aggs": {
			  "stat": {
			    "stats": {
			      "field": "age"
			    }
			  }
			}
		}
	},
	"size": 0
}

Elasticsearch专栏-6.es基本用法-聚合查询

多种聚合结果统一查询

这里的多种聚合,指的是常用的平均值、最大最小、总和等。除了开始讲到的min、max、avg等关键字外,还可以用stats关键字。一个stats就可以包含min/max/avg/sum等。

POST /bank/_search
{
  "query": {
    "range": {
      "age": {
        "gte": 10,
        "lte": 20
      }
    }
  },
  "aggs": {
    "stat": {
      "stats": {
        "field": "age"
      }
    }
  },
  "size": 0
}

Elasticsearch专栏-6.es基本用法-聚合查询文章来源地址https://www.toymoban.com/news/detail-484237.html

到了这里,关于Elasticsearch专栏-6.es基本用法-聚合查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch 查询和聚合查询:基本语法和统计数量

    摘要:Elasticsearch是一个强大的分布式搜索和分析引擎,提供了丰富的查询和聚合功能。本文将介绍Elasticsearch的基本查询语法,包括预发查询和聚合查询,以及如何使用聚合功能统计数量。 Elasticsearch是一种开源的分布式搜索和分析引擎,广泛应用于各种场景,包括日志分析、

    2024年02月11日
    浏览(48)
  • 【ElasticSearch笔记】ES基本查询

    目录 一、简介 ES与关系型数据库对比 文本分析 倒排索引 二、基本查询 空查询 相关性 查询与过滤 1. 查询与\\\"first blog\\\"字段最佳匹配的文档 2. 搜索博客等级(level)大于等于2, 同时发布日期(post_date)是2018-11-11的博客 结构化搜索 1. 精确值查找(term) 2. 多个精确值查找(terms) 3

    2024年01月21日
    浏览(38)
  • Elasticsearch基础学习-常用查询和基本的JavaAPI操作ES

    Elasticsearch是一个基于 lucene 、分布式、通过Restful方式进行交互的 近实时搜索 平台框架。 ELK技术栈是Elasticsearch、Logstash、Kibana三大开元框架首字母大写简称。 而Elasticsearch 是一个 开源的高扩展的分布式全文搜索引擎 , 是整个 ELK技术栈的核心。 Elasticsearch是一个基于lucene、分

    2024年02月11日
    浏览(57)
  • es_聚合用法详解

    ES统计分析概念 ES中的聚合查询,类似SQL的SUM/AVG/COUNT/GROUP BY分组查询,主要用于统计分析场景。 下面先介绍ES聚合查询的核心流程和核心概念。 ES聚合查询类似SQL的GROUP by,一般统计分析主要分为两个步骤: 分组 组内聚合 对查询的数据首先进行一轮分组,可以设置分组条件

    2024年02月01日
    浏览(30)
  • ES-聚合查询

    1. 概念 聚合(aggs)不同于普通查询,是目前学到的第二种大的查询分类,第一种即“query”,因此在代码中的第一层嵌套由“query”变为了“aggs”。用于进行聚合的字段必须是exact value,分词字段不可进行聚合,对于text字段如果需要使用聚合,需要开启fielddata,但是通常不建

    2023年04月25日
    浏览(44)
  • ES 聚合分组查询 语法

    ES 聚合分组查询的语法如下: 其中 index 是索引名称, size 设置为 0 意味着只返回聚合结果而不返回文档。 aggs 字段是聚合查询的核心部分,这里以 group_by_field 为例进行分组查询,其中 terms 指定了分组的字段名称。 这样的查询会返回按照 field_name 字段进行分组后每个分组的

    2024年02月11日
    浏览(39)
  • es-06聚合查询

    概念 聚合(aggs)不同于普通查询,是目前学到的第二种大的查询分类,第一种即“query”,因此在代码中的第一层嵌套由“query”变为了“aggs”。 用于进行聚合的字段必须是exact value,分词字段不可进行聚合 ,对于text字段如果需要使用聚合,需要开启fielddata,但是通常不建

    2023年04月09日
    浏览(33)
  • Elasticsearch专栏-8.es读写性能及优化

    服务器资源 资源 数值 服务器 华为 系统 centos7.9 cpu Intel® Core™ i5-10500 CPU @ 3.10GHz、6核12线程 mem 62G disk 机械硬盘、3.6T 单机写入性能 将es堆内存增大到20G,其余配置不做任何修改,数据单条写入。测试结果如下 线程 线程延迟时间(ms) 数据量(W) 平均响应时间(ms) QPS 300 0 5.9 338

    2023年04月12日
    浏览(43)
  • Elasticsearch查询以及聚合查询

    must:返回的文档必须满足子句的条件,并且参与计算分值 filter:返回的文档必须满足filter子句的条件,不会参与计算分值 should:返回的文档可能满足should子句的条件。 must_nout:返回的文档必须不满足must_not定义的条件。 注意:如果一个查询既有filter又有should,那么至少包含

    2023年04月13日
    浏览(55)
  • 一个通用的es聚合查询方法

    调整方法如下: getSearchCondition为数据库中配置的条件: {\\\"query\\\":{\\\"bool\\\":{\\\"must\\\":[{\\\"exists\\\":{\\\"field\\\":\\\"db_type\\\",\\\"boost\\\":1}},{\\\"exists\\\":{\\\"field\\\":\\\"dst_ip\\\",\\\"boost\\\":1}},{\\\"exists\\\":{\\\"field\\\":\\\"dst_port\\\",\\\"boost\\\":1}},{\\\"exists\\\":{\\\"field\\\":\\\"dst_db_name\\\",\\\"boost\\\":1}},{\\\"exists\\\":{\\\"field\\\":\\\"dst_db_table\\\",\\\"boost\\\":1}},{\\\"exists\\\":{\\\"field\\\":\\\"dst_asset_name\\\",\\\"boost\\\":1}

    2024年02月08日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包