排序 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

相关文章
|
NoSQL 网络协议 关系型数据库
golang面试题整理
在2020阿里云峰会上,阿里云智能总裁张建锋表示,阿里云今年再招5000人,大规模引进顶尖科技人才。7月9日 19:00-21:30 阿里云开发者社区首场“Offer 5000”直播开启!15位团队技术大牛在线招人,《阿里云技术面试红宝书》助你拿下Offer!马上投递简历: https://developer.aliyun.com/special/offerday01,在此,小编奉上golang面试题,帮你拿下好工作!
13498 0
golang面试题整理
|
应用服务中间件 Android开发 nginx
|
存储 缓存 Linux
Python pip常用功能说明
pip 是 Python 的一个包管理工具,可以让用户方便地下载和安装 Python 包。pip 可以从 PyPI (Python Package Index) 上下载这些包,并且自动处理依赖关系。PyPI 是一个存储着 Python 包的仓库,用户可以从这个仓库中搜索、下载和安装 Python 包。在使用 pip 安装 Python 包时,由于 PyPI 的服务器位于国外,下载速度可能比较慢,因此我们可以使用国内的镜像源来提高下载速度。常见的国内镜像源有阿里云、清华大学等。
707 6
|
机器学习/深度学习 存储 人工智能
【大语言模型】ACL2024论文-01 Quantized Side Tuning: Fast and Memory-Efficient Tuning of Quantized Large Language
本文介绍了Quantized Side Tuning(QST)方法,旨在解决大型语言模型(LLMs)微调过程中的内存效率和速度问题。QST通过将模型权重量化为4位,并引入一个与LLM分离的侧网络,显著减少了内存占用并加快了微调速度,同时保持了与现有技术相当的性能。实验表明,QST可以将总内存占用减少高达2.3倍,并将微调速度提高高达3倍。
|
JSON JavaScript 前端开发
Vue中的axios深度探索:从基础安装到高级功能应用的全面指南
在Vue项目中,高效的前后端通信是构建丰富用户体验的关键。axios作为前端与后端沟通的桥梁,其重要性不言而喻。本文将带您领略axios的魅力,从基本概念、安装方法,到高级应用技巧,助您快速掌握在Vue中利用axios进行HTTP请求的精髓。我们不仅会探讨axios的基础用法,如GET、POST请求,还将深入探索跨域配置、全局注册以及设置拦截器等高级功能,助您轻松实现优雅的前后端通信。
|
测试技术 开发者 Python
Django 工程目录结构设计
Django 工程目录结构
9041 0
|
Web App开发 编解码 测试技术
HandBrake 开源视频转码器、编码转换器、格式转换器
HandBrake 开源视频转码器、编码转换器、格式转换器 点击下图进入官网下载页面:https://handbrake.fr/downloads.php macOS 下可能会阻止安装! 其实也不是安装,是运行! 需要打开系统偏好设置》安全性与隐私》窗口下方会看到被阻止的程序,点击左下角解锁就可以了。
2750 0
Axure rp简单介绍及下载安装详细步骤
Axure rp简单介绍及下载安装详细步骤
573 0
Axure rp简单介绍及下载安装详细步骤
|
JavaScript 小程序 计算机视觉
记录一次小程序卡片组件封装的实战
来分析一下我这次所做项目的需求,首先重要的是卡片内部的布局需要卡片组件需要应用在两个场景下,每个场景的部分文本内容有区别,所以需要进行文本控制,而又要考虑到文本长度的问题,所以需要对文本内容进行一些处理,整理一下得出以下三个点
347 0
记录一次小程序卡片组件封装的实战