排序 sort|学习笔记

简介: 快速学习排序 sort。

开发者学堂课程【ElasticSearch 最新快速入门教程排序 sort】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/642/detail/10659


排序 sort

 

内容介绍

一、 ES JavaAPI 排序 sort

二、 案例实操

 

一、 ES JavaAPI 排序 sort

案例:

核心代码:addSort(“age”,SortOrder.DESC)//将年龄按照降序排列。

排序查询演示:

@Test

public void sortSearch (){

//需求:检索索引库 bank 中的 type 之 account 中所有男性客户,根据得分降序排列,若得分相同,然后根据每个账户的余额升序排列。

//步骤:

1. 检索

SearchResponse response=client.prepareSearch(indices).setTypes(“account”)

//设置检索的条件

.setQuery(QueryBuilders.termQuery(“gender.keyword”,“M))

//定制排序规则

//根据得分降序排列

.addSort(SortBuilders.scoreSort().order(SortOrder.DESC))

//若得分相同,根据银行存款余额的升序排列

. addSort(SortBuilders.fieldSort(“balance”).order(SortOrder.ASC))

//设置分页

.setFrom(0)

.setSize(1000)

//触发检索

.get();

2 .分析并显示检索后的结果

SearchHits hits = response.getHits();

for(SearchHits hit:hits){

float score=hit.getscore();

string source=hit.getSourceAsString();

System.out.print(“当前索引的得分是:%.8f,内容是:%s%n”,score,source);

}

}

 

二、 案例实操

(1) 排序检索索引库

需求:查询索引库之 bank 下的 type 之 account ,查询所有女性账户的信息,首先根据分数进行降序排列,若是分数相同,根据银行存款升序排列。

@Test

public void testOrder(){

//步骤

//查询

SearchResponse response=client.prepareSearch(…indices:“bank”)

.setTypes(“account”)

//女性账户

.setQuery(QueryBuilders.termQuery(name“gender.keyword”,value“F”))

//根据得分进行降序排列

.addSort(SortBuilders.scoreSort().order(SortOrder.DESC))

//根据银行存款余额进行升序排列

. addSort(SortBuilders.fieldSort(“balance”).order(SortOrder.ASC))

.setFrom(0)

.setSize(1000)

.get();

//分析并显示检索后的结果

SearchHits hits = response.getHits();

System.out.println(“得分\t\t内容”);

System.out.println(“                      ”);

for(SearchHits hit:hits){

System.out.println(hit.getSource()+“\t\t”+hit.getSourceAsString());

}

2运行结果

image.png

因为整个数据库有一千条,所以截图只展示部分检索结果.

3)数据库附图

image.png

相关文章
|
7月前
|
搜索推荐 算法 Java
sort-05-insert sort 插入排序算法详解
这是一个关于排序算法的系列文章总结,包括冒泡排序、快速排序、选择排序、堆排序、插入排序等10种排序算法的详细讲解和Java实现。插入排序是一种简单直观的排序算法,通过构建有序序列并逐个插入新元素来排序。提供的Java代码展示了插入排序的实现过程,并附有测试示例。所有算法已开源在GitHub项目[https://github.com/houbb/sort](https://github.com/houbb/sort)中。
|
7月前
|
搜索推荐 算法 Java
sort-07-merge sort 归并排序
这是一个关于排序算法的系列文章摘要。文章涵盖了多种排序算法的详细解释,包括冒泡排序、快速排序、选择排序、堆排序、插入排序、希尔排序、归并排序、计数排序、桶排序以及大文件外部排序。归并排序是一种效率为O(nlogn)的排序算法,基于分治法,将序列分成两半,分别排序后再合并。文章提供了Java实现的递归和迭代版本。在归并排序的递归实现中,代码通过不断拆分和合并子序列完成排序,而迭代实现则是通过逐步增大子序列长度并进行两两归并来排序。整个系列可在GitHub找到相关源码。
|
7月前
排序——sort的用法
排序——sort的用法
59 0
|
搜索推荐 C++
C++利用sort进行排序
C++利用sort进行排序
|
7月前
|
搜索推荐 数据库 C++
带用排序等法sort讲解
带用排序等法sort讲解
44 0
|
7月前
|
C++
C++如何进行sort的使用——C++如何进行排序
C++如何进行sort的使用——C++如何进行排序
126 0
|
7月前
|
小程序
排序sort()排序用法
排序sort()排序用法
排序(Sort)(一)
排序(Sort)(一)
87 0
排序(Sort)(二)
排序(Sort)(二)
67 0
|
NoSQL Redis
SORT
SORT
107 0