扫码阅读
手机扫码阅读
Elasticsearch(ES)搜索结果排序、分页和高亮
205 2024-07-17
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
文章来源:
springboot葵花宝典
扫码关注公众号
今日目标
掌握DSL查询文档排序、分页和高亮。
1.排序
Elasticsearch默认使用相关度得分(_score)排序,同时支持自定义字段排序,包括keyword类型、数值类型、地理坐标类型和日期类型等。
1.1.普通字段排序
普通字段排序支持多个排序条件,排序条件数组与query标签平行,按声明的顺序依次排序。
1.2.排序示例
举例完成酒店数据根据用户评价降序,价格升序排序的操作。
2.地理坐标排序
地理坐标排序根据文档中geo_point类型字段与目标坐标点的距离进行排序。
2.1.地理坐标排序示例
实例演示如何对酒店数据按照与某位置坐标的距离进行升序排序。
3.分页
Elasticsearch默认返回前10条数据,通过修改from和size参数控制返回的结果,类似于MySQL的LIMIT语句。
3.1.基本的分页
展示如何使用from和size参数进行基本的分页查询。
3.2.深度分页问题
讨论了在查询深度分页数据时产生的性能问题,以及Elasticsearch限制from + size超过10000的请求。
解决方案包括:
- search after:支持无上限分页,推荐使用。
- scroll:不推荐使用,有额外内存消耗并且结果非实时。
4.高亮
高亮显示通过为文档关键字添加标签实现,要求搜索条件包含关键字且字段必须与搜索指定字段一致。
4.1.高亮原理
解释了高亮显示的概念和实现步骤。
4.2.实现高亮
介绍了高亮显示的具体语法。
4.3.高亮示例
提供了一个高亮显示的实际例子。
总结
讨论了分页查询的不同实现方案及其优缺点,并简述了查询的DSL包含的属性。
想要了解更多内容?
文章来源:
springboot葵花宝典
扫码关注公众号
springboot葵花宝典的其他文章
Spring Cloud LoadBalancer:实现高效负载均衡的必备工具
,Spring Cloud LoadBalancer作为新一代的负载均衡解决方案,正以其出色的性能和灵活的特性成为开发者们追捧的爆款工具。
SpringBoot-30-RestTemplate的Post详解
SpringBoot-30-RestTemplate的Post详解
centos离线安装中文版GitLab
centos离线安装中文版GitLab
深入理解InnoDB存储引擎:逻辑存储结构、事务原理
InnoDB存储引擎是MySQL中最常用的存储引擎之一,它支持高级事务处理和并发控制,以及稳健的性能。本文将深入探讨InnoDB存储引擎的核心概念和工作原理,包括逻辑存储结构、事务原理。
SpringBoot实现全局异常处理总结
今天主要讲解了@ControllerAdvice+@ExceptionHandler进行统一的在Controller层上的全局异常处理
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线