`

ES里多字段分组后排序

 
阅读更多

ES里多字段分组再排序,只有两种办法,其他办法都不准:

办法一:用script

 //主桶:设置要聚合的字段,sql
        TermsBuilder one = AggregationBuilders.terms("one").script(new Script("doc['"+dbFiled+"'].value +'{#}' + doc['"+sqlFiled+"'].value"));

        one.subAggregation(AggregationBuilders.max(queryTime + "Max").field(queryTime));
        one.subAggregation(AggregationBuilders.min(queryTime + "Min").field(queryTime));
        one.subAggregation(AggregationBuilders.avg(queryTime + "Avg").field(queryTime));

        one.order(Terms.Order.aggregation(queryTime + "Max", false));
        one.size(100);

        //构建查询语句
        srb.addAggregation(one);

 

这种办法是效率低,但灵活。不用冗余字段。

 这种办法需要配置es,如下:配置文件elasticsearch.yml

script.inline:on
script.indexd:on

 配置完后重启服务端,如果你客户端处于连接状态,那也要重启。

 

办法二:冗余字段

 

在logstash抓数据的时候,就冗余合并字段,配置略。

 

 

分享到:
评论

相关推荐

    java使用elasticsearch分组进行聚合查询过程解析

    同时,Elasticsearch 还提供了多种聚合函数,例如 SUM、AVG、MAX 等,可以对分组后的数据进行聚合计算。 Java 中的 Elasticsearch 客户端 在 Java 中,我们可以使用 Elasticsearch 的 Java 客户端来实现对 Elastic...

    SpringBoot集成Elasticsearch(已实现各种ES操作,上手即可用)

    本实例涵盖ES中的各类操作,如索引操作、CRUD操作、批处理、结果排序、分页查询、检索查询、关键字查询、高亮显示、逻辑查询、过滤查询、分组查询等等。并且已经过生产环境验证,各位可放心使用。

    Elasticsearch聚合 之 Terms

    Elasticsearch中的Terms聚合是一种常用的聚合方式,用于对文档中的某个字段进行分组统计。Terms聚合可以对文档中的某个字段进行分组,并统计每个组中的文档数量。 在Elasticsearch中,Terms聚合可以使用以下方式...

    elasticsearch_sort.pptx

    ### Elasticsearch中的自定义排序 #### 引言 在Elasticsearch这一强大的搜索引擎中,排序功能是数据检索过程中不可或缺的一部分。良好的排序机制不仅能够提升用户体验,还能优化查询性能。本篇文章将深入探讨...

    elasticsearch-sql-2.2.0.1.zip

    安装Elasticsearch-SQL 2.2.0.1插件时,你需要将解压后的文件上传至Elasticsearch服务器,并通过Elasticsearch的Plugin Manager进行安装。在使用过程中,你可以通过HTTP RESTful API或者JDBC/ODBC驱动连接Elastic...

    Elasticsearch权威指南(中文).pdf

    3. **评分(Score)**:Elasticsearch基于相关性计算的评分机制,影响搜索结果排序。 4. **缓存(Cache)**:利用内存提高搜索速度,如字段数据缓存、过滤器缓存。 5. **Shard路由**:合理分配数据和查询请求,避免热点...

    SpringBoot集成Elasticsearch(已实现各种ES操作,上手即可用

    本实例涵盖ES中的各类操作,如索引操作、CRUD操作、批处理、结果排序、分页查询、检索查询、关键字查询、高亮显示、逻辑查询、过滤查询、分组查询等等。并且已经过生产环境验证,各位可放心使用。如有不对之处欢迎...

    Elasticsearch在企业协作服务中的应用实践.pdf

    Elasticsearch的聚合功能是数据分析中的核心能力,它可以根据用户设定的条件进行分组、排序、统计等,从海量数据中提取有价值的信息。例如,可以按时间维度、数字范围、人员、自定义字段等进行聚合查询。 总结来说...

    elasticsearch-5.4.1

    4. **横向扩展**: 随着数据量的增长,只需添加更多节点,Elasticsearch 就能自动调整索引分片,平衡集群负载,实现无缝扩展。 5. **文档型数据库**: Elasticsearch 存储的是结构化的文档,支持多种数据类型,包括...

    ElasticSearch权威指南

    ElasticSearch权威指南是一本深入介绍ElasticSearch分布式搜索引擎的权威书籍,它向读者介绍了ElasticSearch的基础知识和使用方法。ElasticSearch是一个开源搜索引擎,它基于Apache Lucene构建,提供了全文搜索功能...

    ElasticSearch 学习案例

    由于 Elasticsearch 支持 JSON 文档格式,因此可以轻松地添加或修改字段,这是它相对于传统关系型数据库如 MySQL 的一大优势。在 MySQL 中,添加列可能需要复杂的 DDL 语句,并可能影响现有应用程序代码。 接下来,...

    Elasticsearch原理解析

    Elasticsearch,作为一个开源的分布式全文搜索引擎,广泛应用于日志分析、实时监控、数据检索等多个领域。它以其强大的搜索性能、高可扩展性和易用性,深受开发者喜爱。本文将深入解析Elasticsearch的核心原理,帮助...

    elasticsearch-6.3.2.zip

    4. 分片(Shard):Elasticsearch将大索引分成多个分片,分片可以在不同的节点上分布,提高检索性能和可扩展性。 5. 复制分片(Replica Shard):每个分片都有若干个副本,用于提高数据冗余和容错能力。 二、SQL...

    linux elasticsearch 7.17.0

    6. **聚合分析**:除了搜索,Elasticsearch还擅长进行聚合分析,可以对数据进行分组、排序、计算统计指标等,帮助用户深入洞察数据。 7. **监控和管理**:内置的Kibana工具提供了可视化界面,用于监控集群状态、...

    elasticsearch汇总整理.rar

    Elasticsearch 提供了丰富的聚合功能,可以对搜索结果进行统计分析,如求平均值、最大值、最小值,还可以进行桶聚合(Bucket Aggregations)如术语聚合(Term Aggregation)用于按字段值分组,范围聚合(Range ...

    lasticsearch-SQL使用SQL查询Elasticsearch

    Elasticsearch-SQL是针对Elasticsearch开发的一个插件,它允许用户通过SQL语句来查询Elasticsearch中的数据,极大地降低了使用Elasticsearch的门槛,特别是对于熟悉SQL语法的开发者来说,这是一个非常友好的特性。...

Global site tag (gtag.js) - Google Analytics