Elasticsearch学习笔记(三)聚合分析Agg
一、设置fielddata
PUT /index/_mapping/type
{
"properties":{
"fieldName":{
"type":"text",
"fielddata":true
}
}
}
例如:
PUT /ecommerce/_mapping/product
{
"properties": {
"tags":{
"type": "text",
"fielddata": true
}
}
}
二、聚合分析
1、聚合分析基本语法:
需求1:计算每个tag下的商品数量
GET /ecommerce/product/_search // GET /index/type/_search
{
"size": 0, // 返回数据hits内不显示命中的数据记录
"aggs": {
"all_tags": { // 聚合器名称
"AGG_TYPE": { //AGG_TYPE聚合类型:terms,avg
"field": "fieldName"//字段名称
}
}
}
}
2、为聚合分析添加刷选条件
需求2:对名称中包含yagao的商品,计算每个tag下的商品数量
GET /ecommerce/product/_search
{
"size": 0,
"query": {
"match": {
"name": "yaogao"
}
},
"aggs": {
"all_tags": {
"terms": {
"field": "tags"
}
}
}
}
3、嵌套聚合分析
需求3:先分组,再算每组的平均值,计算每个tag下的商品的平均价格
GET /ecommerce/product/_search
{
"size": 0,
"aggs": {
"group_by_tags": {
"terms": {
"field": "tags"
},
"aggs": {
"avg_price": {
"avg": {
"field": "price"
}
}
}
}
}
}
4、聚合结果排序
需求4:计算每个tag下的商品的平均价格,并且按照平均价格降序排序
GET /ecommerce/product/_search
{
"size": 0,
"aggs": {
"all_tags": {
"terms": {
"field": "tags",
"order": {
"avg_price": "asc"
}
},
"aggs": {
"avg_price": {
"avg": {
"field": "price"
}
}
}
}
}
}需求5:按照指定的价格范围区间进行分组,然后在每组内再按照tag进行分组,最后再计算每组的平均价格
GET /ecommerce/product/_search
{
"size": 0,
"aggs": {
"group_by_price": {
"range": {
"field": "price",
"ranges": [
{
"from": 0,
"to": 20
},{
"from": 20,
"to": 40
},{
"from": 40,
"to": 50
}
]
},
"aggs": {
"all_tags": {
"terms": {
"field": "price"
},
"aggs": {
"avg_price": {
"avg": {
"field": "price"
}
}
}
}
}
}
}
}
最新文章
- 【手把手教你全文检索】Apache Lucene初探
- PHP读取CSV文件把数据插入到数据库,本地没有问题,阿里云测试服务器不行
- 2D空间中判断一点是否在三角形内
- MMORPG大型游戏设计与开发(客户端架构 part10 of vegine)
- rsync --exclude 参数
- 【Unity3D游戏开发】基础知识之Tags和Layers (三二)[转]
- uva 11800 Determine the Shape
- servlet的配置和上下文
- Android 利用Application对象存取公共数据
- 【Demo 0008】标签控制器
- [新概念英语II 笔记] Lesson 3: Please Send Me a Card
- 关于odbc连接orcal,用户名密码大小写敏感问题
- JSON与JAVA的数据转换
- unity 竖屏不能全屏显示
- python 常见错误和异常 函数 正则表达式及多线程编程
- 网站设置ico图标
- 线程池如何复用一个线程-- ThreadPoolExecutor的实现(未完)
- Java实现DOS中的Copy命令
- Vue基础进阶 之 计算属性的使用
- 深入了解preventDefault与stopPropagation
热门文章
- 从yield 到yield from再到python协程
- Fluent动网格【9】:区域运动
- d3里的比例尺
- ICE简单介绍及使用示例
- 【原创】SAP/Oracle 集团企业海外全球化实施注意事项: 一带一路本地化 (持续更新)
- Direct3D 11 Tutorial 3: Shaders and Effect System_Direct3D 11 教程3:着色器和效果系统
- abtestingGateway错误集锦
- 21备忘录模式Memento
- python调用shell脚本时需要切换目录
- 【GIS】Mapbox-json配置