首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ElasticSearch 深度分页总结

背景 我们的应用是采用NLPchina开源的elasticsearch-sql插件来进行查询分页和导出,由于ElasticSearch的max_result_window的限制,在深度分页和大批量数据导出时就会出现问题...ElasticSearch的max_result_window默认为10000条,当使用elasticsearch-sql执行select * from test limit 10000,1时,ElasticSearch...ES 分页建议 增加默认的筛选条件,尽量减少数据量的展示,比如:最近一个月; 限制总分页数,比如:淘宝、京东仅显示100页查询结果,百度仅显示76页; 修改跳页的展现方式,改为滚动显示,或小范围跳页,比如...elasticsearch-sql 分页 分页(limit):深度跳页和深度随机跳页无法实现,但可做限制页数+小范围跳页的替代方案。...USE_SCROLL(100,30000)/ firstname , balance FROM accounts; csv-result:有个 csv 导出的实验类功能(验证)。

1.2K40

elasticsearch的分页查询的用法与分析

前言:在接口设计上,对数据进行查询时,往往会采用分页查询的形式进行数据的拉取,主要是为了避免一次性返回过大的结果导致对网络,内存,客户端应用程序,集群服务等产生过大的压力,导致出现性能问题。...当我们使用这种方式进行分页查询时,elasticsearch默认上限为10000条数据。...客户端资源消耗:较大的查询结果窗口可能会导致客户端应用程序需要处理更多的数据。如果客户端不具备足够的资源来处理大量的查询结果,可能会影响客户端的性能和稳定性。...当分页的数据超过10000条时,我们又需要返回大量的结果,我们可以通过search_after的方式。其操作步骤如下:1....scroll=1m{ "size": 100, "query": { "match": { "message": "foo" } }}使用限制与分析在scroll查询中,scroll_id

465112
您找到你想要的搜索结果了吗?
是的
没有找到

一起学Elasticsearch系列-深度分页问题

报错信息的解释为当前查询的结果超过10000的最大值,这个错误表示请求中的偏移量(from)加上大小(size)超过了索引级别参数 index.max_result_window 所允许的限制。...默认情况下,该限制10000,由 max_result_window 参数控制。在示例中,请求指定的from值为10000加上size值为5,总计为10005,超过了默认限制。...然而,滚动搜索并不会保存查询结果或索引的快照。一旦滚动上下文被使用完毕(超过滚动时间间隔或已经遍历完所有结果),它就会被丢弃,并且之前返回的结果将不能再重现。...为防止因打开过多Scrolls而导致的问题,ES不允许用户打开超过一定限制的Scrolls。默认情况下,打开Scrolls的最大数量为 500。...时间限制:Search After没有时间限制,可按需获取结果。而Scroll Search需要设置滚动时间间隔,超过该时间将失去滚动上下文。

32110

上亿数据怎么玩深度分页?兼容MySQL + ES + MongoDB

, 20; LIMIT 10000 , 20的意思扫描满足条件的10020行,扔掉前面的10000行,返回最后的20行。...如果是LIMIT 1000000 , 100,需要扫描1000100 行,在一个高并发的应用里,每次查询需要扫描超过100W行,不炸才怪。...ElasticSearch 从业务的角度来说,ElasticSearch不是典型的数据库,它是一个搜索引擎,如果在筛选条件下没有搜索出想要的数据,继续深度分页也不会找到想要的数据,退一步讲,假如我们把ES...作为数据库来使用进行查询,在进行分页的时候一定会遇到max_result_window的限制,看到没,官方都告诉你最大偏移量限制是一万。...,另外,如果使用 Search After 这种滚动式API进行深度跳页查询,也是一样需要每次滚动几千条,可能一共需要滚动上百万,千万条数据,就为了最后的20条数据,效率可想而知。

1.3K00

视频 | 如何构建链路追踪 SkyWalking 5.x 的源码并运行

workerCacheMaxSize: 10000 #最大工作缓存数量 # Apdex # 性能指数: # Apdex(Application Performance Index)是一个国际通用标准,...# Apdex 是用户对应用性能满意度的量化值。...# 容忍:慢了一点,但还可以接受,继续这一应用过程,响应时间 T~4T 秒。 # 失望:太慢了,受不了了,用户决定放弃这个应用,响应时间超过 4T 秒。...traceDataTTL: 90 #追踪数据滚动删除周期,默认90分钟 minuteMetricDataTTL: 90 #分钟监控数据滚动删除周期,默认90分钟 hourMetricDataTTL...: 36 #小时监控数据滚动删除周期,默认36小时 dayMetricDataTTL: 45 #天监控数据滚动删除周期,默认45天 monthMetricDataTTL: 18 #月监控数据滚动删除周期

1.2K10

干货 | 全方位深度解读 Elasticsearch 分页查询

问题3:From+size、Scroll、search_after 的本质区别和应用场景分别是什么?...2.1.3 深度翻页不推荐使用 From + size Elasticsearch限制最大分页数,避免大数据量的召回导致性能低下。...Elasticsearch 的 max_result_window 默认值是:10000。也就意味着:如果每页有 10 条数据,会最大翻页至 1000 页。...超过了最大窗口的限制,index.max_result_window 默认值为10000。 报错信息还同时给出了两个解决方案: 方案一:大数据集召回数据使用:scroll api。 后面会详细讲解。...search_after:仅需要向后翻页的场景及超过Top 10000 数据需要分页场景。 Scroll:需要遍历全量数据场景 。 max_result_window:调大治标不治本,不建议调过大。

5K20

Elasticserach学习笔记之Elasticsearch查询慢和集群慢查询日志配置

如果你有 5 个 分片,那么就有 10000 条数据,接着协调节点对这 10000 条数据进行一些合并、处理,再获取到最终第 200 页的 10 条数据。...实在需要查询很多数据,可以使用scroll API 滚动查询。...network.breaker.inflight requests.limit 限制当前通过HTTP等进来的请求使用内存不能超过Node内存的指定值。这个内存主要是限制请求内容的长度。...0x03 配置慢查询日志 3.1 通过修改elasticsearch.yml来启用慢查询(需要重启集群,不推荐) vim elasticsearch.yml Search Slow Log配置 ###Search...官网参考 这是一个索引级别的设置,也就是说可以独立应用给单个索引:这个配置是永久的,配置后即使集群重启也会保留。

2.4K20

关于重建索引 API 使用和故障排查的 3 个最佳实践

如果您的 Elasticsearch 集群存在过度分片、资源利用率高或垃圾收集问题,可能会在滚动搜索查询过程中出现超时。...默认的滚动超时值为 5 分钟,因此,您可以尝试将重建索引 API 上的滚动设置为一个更高的值。POST _reindex?...日志中显示“节点连接”我们始终建议在集群稳定且状态为绿色的情况下运行重建索引 API,集群需要足够的容量才能运行搜索和索引操作。...默认reindex 读取源索引的 batch_size 为1000,这个size的使用限制于系统资源的分配,可以调整到10000增加速度.并发数主要通过url后的slices参数控制,下面的例子里 size...、reindex期间双写问题问题:因业务不能停止写入,服务滚动重启期间存在新旧索引双写的问题,部分数据可能双边更新,应用切换完成后,不能简单覆盖。

13810

Elasticsearch:Index 生命周期管理入门

取而代之的是,您可以定期将数据滚动到新索引,以防止数据过大而又缓慢又昂贵。 随着索引的老化和查询频率的降低,您可能会将其转移到价格较低的硬件上,并减少分片和副本的数量。...当现有索引达到指定的大小或期限时,你可以自动滚动到新索引。 这样可以确保所有索引具有相似的大小,而不是每日索引,其大小可以根 beats 数和发送的事件数而有所不同。...我们希望在索引达到50 GB,或文档的数量超过10000,或已在30天前创建索引后对其进行 rollover,然后在90天后删除该索引。...50GB,那么自动 rollover 如果一个 index 日期已在30天前创建索引后,那么自动 rollover 如果一个 index 的文档数超过10000,那么也会自动 rollover 当一个...index 创建的时间超过90天,那么也自动删除 其实这个我们也可以通过 Kibana 帮我们来实现。

3.5K41

一起学Elasticsearch系列-写入和检索调优

当涉及到大规模数据存储和检索时,Elasticsearch以其快速、高效和强大的搜索能力而闻名,并被广泛应用于各种场景,例如日志分析、全文搜索和实时数据分析。...禁用swap 大多数操作系统尝试将尽可能多的内存用于文件系统缓存,并急切地换掉使用的应用程序内存。这可能导致部分 JVM 堆甚至其可执行页面被换出到磁盘。...如果有这样的需求,建议使用滚动查询 避免单个文档过大 鉴于默认http.max_content_length设置为 100MB,Elasticsearch 将拒绝索引任何大于该值的文档。...在相同性能的情况下,当大量请求同时发送时,太大的批量请求可能会使集群承受内存压力,因此建议避免每个请求超过几十兆字节。 数据建模 很多人会忽略对 Elasticsearch 数据建模的重要性。...避免使用脚本 Scripting是Elasticsearch支持的一种专门用于复杂场景下支持自定义编程的强大的脚本功能。

16311

Elasticsearch探索:Index lifecycle policy

取而代之的是,您可以定期将数据滚动到新索引,以防止数据过大而又缓慢又昂贵。 随着索引的老化和查询频率的降低,您可能会将其转移到价格较低的硬件上,并减少分片和副本的数量。...当现有索引达到指定的大小或期限时,你可以自动滚动到新索引。 这样可以确保所有索引具有相似的大小,而不是每日索引,其大小可以根 beats 数和发送的事件数而有所不同。...我们希望在索引达到50 GB,或文档的数量超过10000,或已在30天前创建索引后对其进行 rollover,然后在90天后删除该索引。...50GB,那么自动 rollover 如果一个 index 日期已在30天前创建索引后,那么自动 rollover 如果一个 index 的文档数超过10000,那么也会自动 rollover 当一个...index 创建的时间超过90天,那么也自动删除 其实这个我们也可以通过 Kibana 帮我们来实现。

3.9K61

elasticsearch-搜索结果处理排序、分页、高亮等原理+实践

因为节点 A 的 TOP200,在另一个节点可能排到 10000 名以外了。...那如果我要查询 9900~10000 的数据呢?是不是要先查询 TOP10000 呢?那每个节点都要查询 10000 条?汇总到内存中?...当查询分页深度较大时,汇总数据过多,对内存和 CPU 会产生非常大的压力,因此 elasticsearch 会禁止 from+ size 超过 10000 的请求。...、淘宝这样的随机翻页搜索 after search: 优点:没有查询上限(单次查询的 size 不超过 10000) 缺点:只能向后逐页查询,不支持随机翻页 场景:没有随机翻页需求的搜索...,例如手机向下滚动翻页 scroll: 优点:没有查询上限(单次查询的 size 不超过 10000) 缺点:会有额外内存消耗,并且搜索结果是非实时的 场景:海量数据的获取和迁移

56110

ElasticSearch常见面试题汇总

有了倒排索引,搜索引擎可以很方便地响应用户的查询。...: 深度分页其实就是搜索的深浅度,比如第1页,第2页,第10页,第20页,是比较浅的;第10000页,第20000页就是很深了。...而且es为了性能,他不支持超过一万条数据以上的分页查询。...那么如何解决深度分页带来的问题,我们应该避免深度分页操作(限制分页页数),比如最多只能提供100页的展示,从第101页开始就没了,毕竟用户也不会搜的那么深。...那么如何解决深度分页带来的问题,我们应该避免深度分页操作(限制分页页数),比如最多只能提供100页的展示,从第101页开始就没了,毕竟用户也不会搜的那么深。

47430

Elasticsearch使用:Search After API

简介 官网地址:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-request-search-after.html...深度分页会随着请求的页次增加,所消耗的内存和时间的增长也是成比例的增加,为了避免深度分页产生的问题,elasticsearch从2.0版本开始,增加了一个限制:索引设置max_result_window...建议使用滚动Scroll api进行有效的深度滚动,但是滚动上下文开销很大,不建议将其用于实时用户请求。search_after参数提供了一个活动游标,从而绕过了这个问题。...index.max_result_window =10000 Search After GET regroupmembers/_search { "size": 2, "query": {...search_after并不是自由跳转到随机页面的解决方案,而是并行滚动许多查询。

5K61
领券