es 去重统计_es 去重查询(聚合、分组、分页、求和统计等)
elasticsearch(es) 如何针对指定字段进行去重相关查询,完成如聚合、分组、分页、类似求和统计等操作?
获取所有的不同值
es 获取指定字段所有可能的值,可以使用桶聚合的 terms 聚合,如下示例:
GET {index}/_search
{
"size": 0,
"aggs": {
"distinct_aggs": {
"terms": {
"field": "status"
}
}
}
}
如上示例,获取指定索引的 status 字段的不同值,size 字段设置为 0,表示搜索出来的文档数为 0 个,也表示不关心文档内容只要聚合结果。 如果为 1 ,就会搜索出 1 个文档。返回如下:
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 3,
"successful": 3,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 58439,
"max_score": 0,
"hits": []
},
"aggregations": {
"distinct_aggs": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": 3,
"doc_count": 46619
},
{
"key": 2,
"doc_count": 11810
},
{
"key": 1,
"doc_count": 10
}
]
}
}
}
去重后分页
分页的话,肯定需要有排序规则,接着如上示例,增加的获取的条数参数 size 和 排序参数 order 即可:
GET {index}/_search
{
"size": 0,
"aggs": {
"distinct_aggs": {
"terms": {
"field": "item_id",
"size" : 1000,
"order": {
"_term": "asc"
}
}
}
}
}
输出如下:
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 3,
"successful": 3,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 58463,
"max_score": 0,
"hits": []
},
"aggregations": {
"distinct_aggs": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": 1,
"doc_count": 32
},
{
"key": 2,
"doc_count": 11811
},
{
"key": 3,
"doc_count": 46620
},
...
]
}
}
}
聚合求和统计
聚合字段的排序,也可以通过指定字段的求和等计算统计结果后进行升降序排序,具体示例如下:
GET {index}/_search
{
"size": 0,
"aggs": {
"item_terms": {
"terms": {
"field": "item_id",
"size": 1000,
"order":[{
"gmv_stat": "desc"
},{
"gmv_180d": "desc"
}]
},
"aggs": {
"gmv_stat": {
"sum": {
"field": "gmv"
}
},
"gmv_180d": {
"sum": {
"script": "doc['gmv_90d'].value*2"
}
}
}
}
}
}
返回如下:
{
...
"aggregations": {
"item_terms": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 260,
"buckets": [
{
"key": 23388,
"doc_count": 18,
"gmv_stat": {
"value": 176220
},
"gmv_180d": {
"value": 89732
}
},
{
"key": 96117,
"doc_count": 16,
"gmv_stat": {
"value": 129306
},
"gmv_180d": {
"value": 56988
}
},
...
]
}
}
}
es 去重统计_es 去重查询(聚合、分组、分页、求和统计等)相关推荐
- Elasticsearch教程(4) High Level REST Client API 查询 聚合 分组
ES High Level REST Client API 查询 聚合 1 准备数据 1.1 插入测试数据 2 Maven引入ES 3 创建Client 4 查询API 4.1 根据id查询单条数据 ...
- day056-58 django多表增加和查询基于对象和基于双下划线的多表查询聚合 分组查询 自定义标签过滤器 外部调用django环境 事务和锁...
一.多表的创建 from django.db import models# Create your models here. class Author(models.Model):id = model ...
- 一脸懵逼学习Hadoop中的序列化机制——流量求和统计MapReduce的程序开发案例——流量求和统计排序...
一:序列化概念 序列化(Serialization)是指把结构化对象转化为字节流. 反序列化(Deserialization)是序列化的逆过程.即把字节流转回结构化对象. Java序列化(java.i ...
- mysql group 分页_【MySQL】条件查询之排序聚合分组分页查询
排序查询 语法:order by 子句 order by 排序字段1 排序方式1 , 排序字段2 排序方式2... 排序方式: ASC:升序,默认的. DESC:降序. 注意: 如果有多个排序条件,则 ...
- 情景分析通用—海量数据中统计最热门查询TOP10
情景描述:云音乐中,每天有几千万的用户搜索歌曲,搜索引擎会通过日志文件把用户每次检索使用的所有检索query都记录下来,每个查询串的长度为1-255字节. 问题:目前我们云音乐准备开发热搜榜功能:假设 ...
- elasticsearch 条件去重_elasticsearch 笔记四 之聚合查询之去重计数、基础统计、百分位、字符串统计...
这一节笔记还是聚合查询,以下是本节目录:去重统计 cardinality 基础统计 stats 百分位 percentiles 字符串统计 string_stats 1.去重统计 cardinalit ...
- Web框架之Django_05 模型层了解(单表查询、多表查询、聚合查询、分组查询)
阅读目录 一.Django ORM 常用字段和参数: 二.单表查询 三.多表查询 基于双下划线的多表查询 四.聚合查询和分组查询 摘要: 单表查询 多表查询 聚合查询 分组查询 一.Django OR ...
- day67 ORM模型之高阶用法整理,聚合,分组查询以及F和Q用法,附练习题整理
归纳总结的笔记: day67ORM特殊的语法一个简单的语法 --翻译成--> SQL语句语法:1. 操作数据库表 创建表.删除表.修改表2. 操作数据库行 增.删.改.查怎么连数据库:需要手动创 ...
- day08 外键字段的增删改查 正向反向插叙概念 跨表查询 聚合查询与分组查询 F查询
day08 外键字段的增删改查 正向反向插叙概念 跨表查询 聚合查询与分组查询 F查询 昨日内容复习 自定义过滤器.标签.inclusion_tag 1.首先现在应用目录下创建名字为templatet ...
最新文章
- Eureka服务注册中心
- linux setroubleshootd进程 内存占用过大
- Struts2 XML配置详解
- 浅谈最优化问题的KKT条件
- 【学习笔记】JS进阶语法一DOM基础
- 【转】RocketMQ的一些特性(生产者消费者配置参数的含义)
- html编辑器查找与替换,织梦kindeditor文本编辑器增加“查找替换”功能
- 我妈妈要求一台Linux计算机
- java 线程管理_Java平台线程管理
- 甩一个Microsoft office visio 2013的百度云连接
- 国家测绘法宣传日专题知识分享
- excel中输入身份证号后三位变成0怎么办
- 规格模式(Specification)
- CentOS 7.3安装详解
- 运行maven项目报错 :The forked VM terminated without saying properly goodbye. VM crash or System.exit calle
- 【计算情与思】大学生学习和发展的思考和建议
- 设置vscode默认终端为msys/MinGW32/MinGW64
- Houdini运行时崩溃了怎么办?别害怕,还有一点点救!
- 物联网技术与应用期末大作业
- 2048小游戏 java版(代码+注释)
热门文章
- Hive 中的各种常用set设置
- android 打开其它app,Android 在一个APP里打开另一个APP
- JavaScript基础——第五章,jQuery与JavaScript
- Gate使用手册(四)数据输出
- 使用fiddler抓取HTTPS协议数据与疑难杂症终极解决方案
- 华为--配置本地环回接口地址
- WslRegisterDistribution failed with error: 0x80070050
- flutter gridview item 有空隙
- css min-height 和 max-height
- android虹软人脸识别简书,C# 离线人脸识别 虹软ArcFace 2.0 demo