es查询java代码如何排序_elasticsearch 查询聚合结果排序
一、查询结果按某个字段进行排序
{
"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 查询聚合结果排序相关推荐
- es中java代码高亮显示_Elasticsearch实现复合查询,高亮结果等技巧
一.Es的配置 实现es的全文检索功能的第一步,首先从与es进行连接开始,这里我使用的是es的5.x java api语法. public TransportClient esClient() thr ...
- 亿级别记录的mongodb分页查询java代码实现
1.准备环境 1.1 mongodb下载 1.2 mongodb启动 C:\mongodb\bin\mongod --dbpath D:\mongodb\data 1.3 可视化mongo工具Robo ...
- 双表查询java代码_多表增删改查
[java]代码库package com.ww.service; import java.lang.reflect.Array; import java.sql.Connection; import ...
- java错误代码查询_在Java代码中调用SPARQL查询(在DBPedia上)时出现HttpException错误...
我对使用Java代码的SPARQL端点有问题. 特别是,我有这个Java类: public class example { public static void main(String[] args) ...
- 用java代码实现在网页查询数据库
首先在mysql上创建数据库 目录 首先在mysql上创建数据库 在编写Java代码之前要写一个driver.properties配置文件用来存放连接数据库必要的数据 下面就是编写代码来连接数据库并进 ...
- oracle数据库 —— 分页查询 java代码实现
分页查询的核心代码(理解这一句话很重要): prep = conn.prepareStatement("select * from (select t2.*,rownum rn from ( ...
- 双表查询java代码_什么是JDBC?Java数据库连接性简介
JDBC(Java数据库连接性)是Java API,用于管理与数据库的连接,发出查询和命令以及处理从数据库获得的结果集.JDBC在1997年作为JDK 1.1的一部分发布,是为Java持久层开发的首批 ...
- es中java代码高亮显示_ElasticSearch如何设置返回结果关键词高亮显示-Fun言
前言 类似于百度等搜索引擎,我们的搜索词都会在搜索结果中显示红色或其他高亮颜色,这就叫高亮显示,ElasticSearch同样也是支持这个功能的,下面我们就看一下如何用es实现搜索结果的高亮显示 教程 ...
- sql双表查询java代码_原生sql 多表查询
Session session =Session session = super.getSession(); session.flush(); Connection con = session.con ...
最新文章
- 在循环中删除list中的元素
- 2018.01.21.一周机器学习周记
- matlab字符处理
- 使用transform和transition制作CSS3动画
- MFC中使用SDL播放音频没有声音的解决方法
- 源码 连接mysql_MySql轻松入门系列————第一站 从源码角度轻松认识mysql整体框架图...
- 一个demo学会js
- 判断Mouse事件源类型
- 英特尔显卡驱动 Intel Graphics Driver for Windows 10 v30.0.101.1069 官方正式安装版 64位
- qq家园里游戏c语言,盘点腾讯旗下5款过气游戏,全部玩过的人都该结婚了吧
- 从零教你用抖音赚钱——吸粉变现技巧
- 广州出生婴儿登记入户程序
- 简述:静态工作点(Q点),直流负载线,交流负载线
- idea 的注释在格式化空格问题
- 【三维目标检测】VoteNet(一)
- CoreAnimation
- 计算机网课自我鉴定,计算机实习自我鉴定
- ML 能解决哪些问题?
- 关于干货集中营的一个开源App
- java webrtc降噪_android音频降噪webrtc