学习了聚合es聚合的例子,如何对结果进行过滤呢?

"terms": {"field": "color.keyword",  "include": [],"exclude": []}

里面有include 和 exclude属性。

看Java里面的 new IncludeExclude 支持多种属性,正则,各种数据类型。

具体怎么操作,看实际的需要去尝试。

Es例子

只统计红色和蓝色的

GET /car_statics_index/_search
{"size": 0, "aggs": {"colors": {"terms": {"field": "color.keyword",  "include": ["red","blue"] }}}
}

排除红色的:

GET /car_statics_index/_search
{"size": 0, "aggs": {"colors": {"terms": {"field": "color.keyword",  "exclude": ["red"] }}}
}

Java 参数处理:

如果是java要es的怎么处理参数呢?

代码目前只考虑数组类型的

String[] includeArr = null, excludeArr = new String[0];
List<Object> includes = (List<Object>) aggParam.get("include");
List<Object> excludes =  (List<Object>) aggParam.get("exclude");
if(includes != null){includeArr = ListUtils.emptyIfNull(includes).stream().map(Object::toString).toArray(String[]::new);
}
if(excludes != null){excludeArr = ListUtils.emptyIfNull(excludes).stream().map(Object::toString).toArray(String[]::new);
}
IncludeExclude includeExclude = new IncludeExclude(includeArr , excludeArr);
aggregationBuilder = AggregationBuilders.terms(aggName).field(fieldValue).includeExclude(includeExclude).size(size);

包括includeArr的默认为null,取全部; 排除的excludeArr默认为空数组

数组的类型比较多,都改成字符串数组的去处理。

总结:

写es的时候,对一些语法不熟悉的时候,先去es官网 看看相关的内容,或是去dev控制台那去敲一敲,看看其中有没什么属性。网上找不到答案的时候,多试试其中的属性,有时候会找到想要的答案。

Es terms include 聚合过滤相关推荐

  1. ES group分组聚合的坑

    参考链接:https://blog.csdn.net/u010454030/article/details/71762838 ES group分组聚合的坑 原来知道Elasticsearch在分组聚合 ...

  2. es根据字段长度过滤_ES Aggs根据聚合的结果(数值)进行过滤

    前言 我们在使用聚合时总是有各种各样的聚合需求,其中一个比较常用的就是根据聚合的结果过滤聚合的桶,例如:1.每个IP登录次数超过5次的IP:2.每个IP登录人数超过2的IP. 还有我之前的一个案例,访 ...

  3. ES terms多值搜索及范围过滤深入剖析-搜索系统线上实战

    专注于大数据及容器云核心技术解密,可提供全栈的大数据+云原生平台咨询方案,请持续关注本套博客.QQ邮箱地址:1120746959@qq.com,如有任何学术交流,可随时联系.详情请关注<数据云技 ...

  4. es 时间字段聚合_ES之五:ElasticSearch聚合

    1.单值聚合 Sum求和,dsl参考如下: { "size": 0, "aggs": { "return_balance": { " ...

  5. es高级客户端聚合查询api快速入门

    //聚合查询@Testvoid Collection_query() throws IOException {SearchRequest searchRequest = new SearchReque ...

  6. ElasticSearch Terms Aggregation 聚合

    ElasticSearch(后续简称为ES)提供了对数据的统计分析服务.在之前的开发中使用Terms Aggregation 对数据进行聚合统计,遇到了一些问题,查阅了ES的官方文档和技术博文了解Te ...

  7. es 时间字段聚合_Elasticsearch 聚合(aggregation)查询返回所有

    Elasticsearch做查询的时候,很多情况下,有一些查询满足不了我们的要求,这个时候,我们用Elasticsearch的聚合(aggregation)函数,下面讲讲aggregation的使用姿 ...

  8. es根据字段长度过滤_es根据字段长度过滤_如何进行elasticsearch查询以过滤字段的最大值?...

    小编典典 不理想,但是我认为它可以满足您的需求. field1假设您是用来定义"重复"文档的字段,请更改字段的映射,如下所示: PUT /lastseen { "mapp ...

  9. es 时间字段聚合_ES按时间聚合、嵌套聚合

    // POST index name/document name/_search格式 POST xxx-*/doc/_search { "query": { "bool& ...

最新文章

  1. 【51CTO学院三周年】遇到
  2. 计算机组成原理——概述2
  3. java 输入框输入1到9_java程序设计  习题答案1到9
  4. Codeforces 1196E Connected Component on a Chessboard
  5. 罗斯蒙特电磁流量计8723说明书_罗斯蒙特8712和8732E电磁流量计变送器的功能规格...
  6. leetcode276. 栅栏涂色
  7. a jquery 标签点击不跳转_form标签的action属性怎么用?form标签action属性的用法介绍(附实例)...
  8. 吴恩达|机器学习作业3.1前馈神经网络
  9. HDU3123:GCC(同余模简单题)
  10. 计算机信息技术基础知识教案,计算机的基础知识
  11. 基于《MySQL5.7从入门到精通》学习记录(20220608_持续更新)
  12. 克服移动应用开发的挑战
  13. vue实现二维码扫码功能
  14. 万字长文:被阿里收购有多好?凉了有多少?
  15. FPGA零基础学习:IP CORE 之 ROM设计
  16. 选择阿里云数据库HBase版十大理由
  17. 论文阅读《No bot expects the DeepCAPTCHA》
  18. linux 服务器加装硬盘流程及sda sdb加载顺序
  19. 浏览器输入一个URL地址后发生的事情
  20. web前端能做到多少岁

热门文章

  1. 为什么电商云产品需要 Assisted Service Module (ASM) 模块的支持
  2. C# OPC客户端访问讯饶OPC服务器访问SunFull.X2OPC.1 报错
  3. 现代OpenGL系列教程(一)---旋转的三角形
  4. 双像立体测图基础与立体测图
  5. 【LaTeX应用】绘制椭圆曲线图形
  6. 为什么Relu会导致死亡节点
  7. Splash的爬虫应用
  8. 微波笔记1—怎么去理解dB,dBm,dBc,dBd,dBi
  9. 要求已打开且可用的 Connection。连接的当前状态为已关闭。
  10. python自然语言处理实战核心技术与算法——HMM模型代码详解