ElasticSearch分页查询的实现

1、设置mapping

2、添加测试数据

3、演示(show me the code):

from + size [深度翻页不推荐使用 From + size]

from + size 两个参数定义了结果页面显示数据的内容。

from:未指定,默认值是 0,注意不是1,代表当前页返回数据的起始值。

size:未指定,默认值是 10,代表当前页返回数据的条数。

searchAfter [官方文档强调:不再建议使用scroll API进行深度分页。如果要分页检索超过 Top 10,000+ 结果时,推荐使用:PIT + search_after。]

part1:创建 PIT 视图,这是前置条件不能省。

POST /ds-trade_t_order/_pit?keep_alive=5m

part2:创建基础查询语句,这里要设置翻页的条件。

part3:实现后续翻页:后续翻页都需要借助 search_after 指定前一页的最后一个文档的 sort 字段值。

scroll [全量或数据量很大时遍历结果数据,而非分页查询。]

part1:指定检索语句同时设置 scroll 上下文保留时间

part2:指定检索语句同时设置 scroll 上下文保留时间

总结:

From+ size:需要随机跳转不同分页(类似主流搜索引擎)、Top 10000 条数据之内分页显示场景。

search_after:仅需要向后翻页的场景及超过Top 10000 数据需要分页场景。

Scroll:需要遍历全量数据场景 。而非翻页的场景(翻页场景scrol id 最多打开500个)。

max_result_window:调大治标不治本,不建议调过大。

PIT:本质是视图。

另外:根据实际经验得出一些参考意见:
1、search_after pit 不适用于商品列表分页查询(类似京猫这种商品列表),因为用户从商品列表进入商品详情,长时间停留在详情页查看后,返回商品列表继续翻页,此时
keep_alive 已经过期,出现无法翻页的错误。
2、Scroll 也会有上述问题。同时scroll也会有连接过多的问题,不适用于分页场景。

参考资料————————————————

版权声明:本文为CSDN博主「铭毅天下」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/laoyang360/article/details/116472697

Original: https://www.cnblogs.com/hbuuid/p/16086625.html
Author: 下午喝什么茶
Title: ElasticSearch分页查询的实现

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/565727/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球