扫码阅读
手机扫码阅读
Elasticsearch(ES)搜索结果排序、分页和高亮
![](/theme/default/default/images/main/eye-open.png)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
![](/theme/default/default/images/main/icon-jing.png)
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包含的属性。
想要了解更多内容?
![](/theme/default/default/images/main/icon-jing.png)
springboot葵花宝典
扫码关注公众号
springboot葵花宝典的其他文章
加入社区微信群
与行业大咖零距离交流学习
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
软件研发质量管理体系建设
白皮书上线