ES Scroll滚动查询

本文介绍了在Elasticsearch中,如何使用Scroll API来优化大规模数据的分页查询。传统的from、size参数在文档数量极大时性能下降,而Scroll API提供了一种高效的方式。通过初始化查询生成 Scroll ID,然后在后续请求中使用该ID维持查询上下文,以实现高性能的分页。此外,还讲解了如何清除滚动上下文。
摘要由CSDN通过智能技术生成

前端查询,经常有分页展示的需求,关系型数据库中往往都提供了类似于top  limit这样的语义来支持分页查询。elasticsearch中也提供了from szie这两个参数来支持分页查询,但是当一个索引中文档数非常巨大的时候,通过from、size来实现分页查询对性能影响很大。所以,ES提供了滚动查询API来提高查询性能,下面介绍下Scroll API的基本用法。

首先新建一个索引,插入一些测试数据

PUT test_scroll
{
  "settings": {
    "number_of_shards": 1
    , "number_of_replicas": 0
  },
  "mappings": {
    "properties": {
      "id":{
        "type": "keyword"
      },
      "content":{
        "type": "text"
      }
    }
  }
}

然后,我们新建一个查询,ES称之为初始化查询。假设我们需要一次返回10条数据,可以新建如下查询:

POST test_scroll/_search?scroll=1m
{
  "size": 10, 
  "query": {
    "match_all": {}
  }
}

执行成功后,返回的结果里有一个_scroll_id字段 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值