一、查询结果按某个字段进行排序

{

"size" : 5,

"query" : {

"bool" : {

"filter" : [

{

"range" : {

"startTime" : {

"from" : 1517046960000,

"to" : 1517048760000

}

}

}

]

}

},

"sort" : [{ "startTime" : { "order" : "desc"}}

]

}

//javaApi设置查询数量size和对orderstr进行正序

SearchRequestBuilder srb = this.createSearchRequestBuilder(new Date(begin), new Date(end));

srb.setQuery(queryBuilder).setSize(queryParam.getPageIndex() * queryParam.getPageSize())

.addSort(orderStr, SortOrder.ASC);

二、聚合结果进行排序

1、根据查询到文档数量

聚合结果为查询到文档的数量倒序:"order" : { "_count" : "desc" }

{"size": 0,

"query" : {

"bool" : {

"filter" : [

{ "range" : {

"startTime" : {

"from" : 1515655800000,

"to" : 1516865400000

}

} },

{ "term" : {

"type" : {

"value" : "URL",

"boost" : 1.0

}

} }

]

}

},

"aggregations" : {

"CATEGORY" : {

"terms" : {

"field" : "errorCode",

"size" : 5,

"order" : {

"_count" : "desc"

}

}

}

}

}

//在java代码中不能直接使用“_count” 使用如下的方式查询

TermsAggregationBuilder termsAggBuilder=AggregationBuilders.terms(AggAlias.CATEGORY.getValue()).field(cateGoryFieldName);

termsAggBuilder.order(Terms.Order.count(false)).size(5);

(2)、根据子聚合的结果进行排序

{

"query" : {

"bool" : {

"filter" : [

{

"term" : {

"type" : {

"value" : "URL",

"boost" : 1.0

}

}

}

]

}

},

"aggregations" : {

"CATEGORY" : {

"terms" : {

"field" : "name",

"size" : 5,

"order" : {"responseTime.avg" : "asc" }

},

"aggregations" : {

"responseTime" : {

"extended_stats" : {

"field" : "durationInMillis",

"sigma" : 2.0

}

},

"error" : {

"sum" : {

"script" : {

"inline" : "def errorTemp=doc['status'].value; if(errorTemp=='0'){return 0;}else{return 1;}",

"lang" : "painless"

}

}

},

"apdex" : {

"avg" : {

"script" : {

"inline" : "def responseTemp=doc['durationInMillis'].value; if(responseTemp>params.threshold){return 0.5;}else{return 1;}",

"lang" : "painless",

"params" : {

"threshold" : 20.0

}

}

}

},

"errorRate" : {

"percentile_ranks" : {

"script" : {

"inline" : "def errorTemp=doc['status'].value; if(errorTemp=='0'){return 1;}else{return 0;}",

"lang" : "painless"

},

"values" : [

0.0

],

"keyed" : true,

"tdigest" : {

"compression" : 100.0

}

}

}

}

}

}

}

//注意根据上面的语句传入的参数应该是 orderStr===responseTime.avg ascOrder=true

AggregationBuilders.terms(AggAlias.CATEGORY.getValue()).field(categoryfieldName).order(Terms.Order.aggregation(orderStr,ascOrder)).size(size)   小伙伴们,如果有其他的排序方式,欢迎一起讨论。

es查询java代码如何排序_elasticsearch 查询聚合结果排序相关推荐

  1. es中java代码高亮显示_Elasticsearch实现复合查询,高亮结果等技巧

    一.Es的配置 实现es的全文检索功能的第一步,首先从与es进行连接开始,这里我使用的是es的5.x java api语法. public TransportClient esClient() thr ...

  2. 亿级别记录的mongodb分页查询java代码实现

    1.准备环境 1.1 mongodb下载 1.2 mongodb启动 C:\mongodb\bin\mongod --dbpath D:\mongodb\data 1.3 可视化mongo工具Robo ...

  3. 双表查询java代码_多表增删改查

    [java]代码库package com.ww.service; import java.lang.reflect.Array; import java.sql.Connection; import ...

  4. java错误代码查询_在Java代码中调用SPARQL查询(在DBPedia上)时出现HttpException错误...

    我对使用Java代码的SPARQL端点有问题. 特别是,我有这个Java类: public class example { public static void main(String[] args) ...

  5. 用java代码实现在网页查询数据库

    首先在mysql上创建数据库 目录 首先在mysql上创建数据库 在编写Java代码之前要写一个driver.properties配置文件用来存放连接数据库必要的数据 下面就是编写代码来连接数据库并进 ...

  6. oracle数据库 —— 分页查询 java代码实现

    分页查询的核心代码(理解这一句话很重要): prep = conn.prepareStatement("select * from (select t2.*,rownum rn from ( ...

  7. 双表查询java代码_什么是JDBC?Java数据库连接性简介

    JDBC(Java数据库连接性)是Java API,用于管理与数据库的连接,发出查询和命令以及处理从数据库获得的结果集.JDBC在1997年作为JDK 1.1的一部分发布,是为Java持久层开发的首批 ...

  8. es中java代码高亮显示_ElasticSearch如何设置返回结果关键词高亮显示-Fun言

    前言 类似于百度等搜索引擎,我们的搜索词都会在搜索结果中显示红色或其他高亮颜色,这就叫高亮显示,ElasticSearch同样也是支持这个功能的,下面我们就看一下如何用es实现搜索结果的高亮显示 教程 ...

  9. sql双表查询java代码_原生sql 多表查询

    Session session =Session session = super.getSession(); session.flush(); Connection con = session.con ...

最新文章

  1. 在循环中删除list中的元素
  2. 2018.01.21.一周机器学习周记
  3. matlab字符处理
  4. 使用transform和transition制作CSS3动画
  5. MFC中使用SDL播放音频没有声音的解决方法
  6. 源码 连接mysql_MySql轻松入门系列————第一站 从源码角度轻松认识mysql整体框架图...
  7. 一个demo学会js
  8. 判断Mouse事件源类型
  9. 英特尔显卡驱动 Intel Graphics Driver for Windows 10 v30.0.101.1069 官方正式安装版 64位
  10. qq家园里游戏c语言,盘点腾讯旗下5款过气游戏,全部玩过的人都该结婚了吧
  11. 从零教你用抖音赚钱——吸粉变现技巧
  12. 广州出生婴儿登记入户程序
  13. 简述:静态工作点(Q点),直流负载线,交流负载线
  14. idea 的注释在格式化空格问题
  15. 【三维目标检测】VoteNet(一)
  16. CoreAnimation
  17. 计算机网课自我鉴定,计算机实习自我鉴定
  18. ML 能解决哪些问题?
  19. 关于干货集中营的一个开源App
  20. java webrtc降噪_android音频降噪webrtc

热门文章

  1. 程序调试的时候利用Call Stack窗口查看函数调用信息
  2. Linux之Ubuntu切换root su -
  3. kafka删除topic
  4. Linux第二周学习笔记(11)
  5. 第十四节: 介绍四大并发集合类并结合单例模式下的队列来说明线程安全和非安全的场景及补充性能调优问题。...
  6. 08-图7 公路村村通
  7. 组合使用Laravel和vfsStream测试文件上传
  8. Hibernate中的实体映射
  9. javaScript事件(二)事件处理程序
  10. 谷歌公布十大恶意网站 均曾攻击上万网站