首页 > 其他分享 >elasticsearch 深分页查询:scroll

elasticsearch 深分页查询:scroll

时间:2024-01-30 09:02:41浏览次数:23  
标签:分页 scroll 查询 elasticsearch 上下文 id ES size

ES对from+size是有限制的,from+size 不能超过10000。
原理:
from+size在ES中的查询方式:
将指定关键字分词
将词汇去分词库中检索,得到多个文档id
取各分片中拉去指定数据(耗时较长)
根据scroe排序(耗时较长)
根据from舍弃一部分数据
返回查询结果
scroll在ES中的查询方式:
将指定关键字分词
将词汇去分词库中检索,得到多个文档id
将文档id存放在上下文中
根据指定size去上下文中检索指定个数的数据,拿完数据的文档id,会从上下文中移除
如果需要下一页数据,直接去ES上下文中,查询后续内容
循环4,5
#测试--scroll查询:执行scroll查询,返回第一页数据,并且将文档id信息存放在ES上下文中,指定生存时间1m
POST /king_test_person/_search?scroll=1m
{
  "query": {
    "match_all": {}
  }, 
  "size": 2,
  "sort": [
    {
      "age": {
        "order": "desc"
      }
    }
  ]
}

#测试--scroll查询:根据scroll查询下一页数据 POST /_search/scroll { "scroll_id":"FGluY2x1ZGVfY29udGV4dF91dWlkDnF1ZXJ5VGhlbkZldGNoAxZOSFpoaExrN1JVS3RVU1dLbWpuWUlnAAAAAAACTZcWeFdCZGlPRnFTejJXeWJ1ZmlKWEF4QRY4cXpzMU5HbFJZTzdUNm84NXVMdTV3AAAAAAADghwWMHVKNERoTGpRdmF5dm1ZeTZzUk8tURY1QXo5cEhuelRJMk5TMzlJMVdlaG5BAAAAAAAC4_sWUWc4X3M1ZFdUbC01Y0NGODNhbHZwQQ==", "scroll":"1m" }   #测试--scroll查询:删除scroll在ES上下文中的数据 DELETE /_search/scroll/FGluY2x1ZGVfY29udGV4dF91dWlkDnF1ZXJ5VGhlbkZldGNoAxZOSFpoaExrN1JVS3RVU1dLbWpuWUlnAAAAAAACTUwWeFdCZGlPRnFTejJXeWJ1ZmlKWEF4QRY4cXpzMU5HbFJZTzdUNm84NXVMdTV3AAAAAAADgY0WMHVKNERoTGpRdmF5dm1ZeTZzUk8tURY1QXo5cEhuelRJMk5TMzlJMVdlaG5BAAAAAAAC44EWUWc4X3M1ZFdUbC01Y0NGODNhbHZwQQ==

 

标签:分页,scroll,查询,elasticsearch,上下文,id,ES,size
From: https://www.cnblogs.com/wq-blogs/p/17995720

相关文章

  • logstash实现Mysql(Tidb)数据到Elasticsearch数据迁移(增量同步)
    1、下载Logstash和Elasticsearch,需要版本一致,本次使用版本均为7.8.0版本[root@zjkdata]#llelasticsearch-7.8.0-linux-x86_64.tar.gzlogstash-7.8.0.tar.gz-rw-r--r--.1rootroot31911256112月2815:39elasticsearch-7.8.0-linux-x86_64.tar.gz-rw-r--r--.1rootroo......
  • Python elasticsearch-py类库基础用法
    实践环境https://pypi.org/project/elasticsearch/pipinstallelasticsearch==7.6.0离线安装包及依赖包下载地址:https://files.pythonhosted.org/packages/f5/71/45d36a8df68f3ebb098d6861b2c017f3d094538c0fb98fa61d4dc43e69b9/urllib3-1.26.2-py2.py3-none-any.whl#sha256=......
  • 【ElasticSearch】入门-基础概念
    什么是ES?是一个高可用分布式的搜索引擎。可以用于实时存储、检索数据。底层是使用Lucene全文检索框架。基本概念存储结构:由_index_type和_id标识唯一的一个文档_index:指向一个或多个物理分片的逻辑命名空间_type:用于区分同一个集合中的不同的细分(ES6.X中只允许一个i......
  • elasticSearch基本概念
    elasticSearch基本概念基本概念索引(index)es将数据存储在一个或多个索引中。es在内部使用Lucene将数据写入索引或者从索引汇总检索数据。es中的索引可能由一个或多个Lucene索引构成。文档(document)文档是es世界中的主要实体。文档由字段构成,每个字段包含字段名以及一个或多个字......
  • SQL Server 2012 版本后的自带分页语法
    SQLServer2012与之前版本相比,增加了好多实用性的功能,在之前,数据表中的记录较多,需要分页时,算法比较麻烦,2012版本之后,增加了优雅分页语法,可通过简单的语法实现分页:Select*FromTb_tableOrderBy<排序列>OffSet<起始位置>ROWSFetchNext<返回的行数>RowsOnly说明:1、<......
  • logstash实现Mysql(Tidb)数据到Elasticsearch数据迁移(增量同步)
    1、下载Logstash和Elasticsearch,需要版本一致,本次使用版本均为7.8.0版本[root@zjkdata]#llelasticsearch-7.8.0-linux-x86_64.tar.gzlogstash-7.8.0.tar.gz-rw-r--r--.1rootroot31911256112月2815:39elasticsearch-7.8.0-linux-x86_64.tar.gz-rw-r--r--.1root......
  • getskiplimit 跳过指定条数的数据 ,常用于分页
    //云端代码'usestrict';constdb=uniCloud.database()exports.main=async(event,context)=>{constcollection=db.collection(event.name)constres=awaitcollection.where(event.data).limit(event.limit).get()returnres};//......
  • linux 安装 elasticsearch
    安装Elasticsearch在Linux系统上的步骤如下:首先,确保你的系统已经安装了Java,Elasticsearch是基于Java开发的,所以需要先安装Java运行环境。可以使用以下命令来检查Java是否已经安装:java-version如果Java已经安装,将会显示Java版本信息。如果没有安装,请根据你的系统......
  • 【docker-compose】ElasticSearch安装教程
    仅供学习参考,请勿轻易在生产环境使用0.目录树1.创建目录mkdir-p/docker/elasticsearch/conf/docker/elasticsearch/data/docker/elasticsearch/logschmod-R777/docker/elasticsearch/conf/docker/elasticsearch/data/docker/elasticsearch/logs2.编写配置......
  • 详解ElasticSearch Python Client ReadTimeout
    详解ElasticSearchPythonClientReadTimeout在使用Python连接Elasticsearch时,我们经常会遇到一些异常情况,其中之一就是ReadTimeout错误。本文将详细介绍这个错误的原因以及如何处理。什么是ReadTimeout错误?ReadTimeout错误通常是由Elasticsearch连接超时引起的。当在与Elasticsea......