首页 > 其他分享 >elasticsearch from + size must be less than or equal to: [10000] but was [100000]

elasticsearch from + size must be less than or equal to: [10000] but was [100000]

时间:2023-08-24 10:46:02浏览次数:37  
标签:index 10000 settings less equal 查询 window elasticsearch scroll

说明:当分页查询时,默认最大总数是10000(from+size<=10000),当我现在业务需要查询最大100000条时,就报错了。

方案1:可以为某个es放开到指定的返回总数,也可以对整个es的索引做设置。但这样对内存消耗很大, 可能导致内存溢出,elasticsearch重启又会恢复默认10000

  基于特定索引生效配置

put <index_name>/_settings
{
    "index.max_result_window":<number>  
}

  基于全局生效配置

put  _all/_settings
{
    "index.max_result_window":<number>  
}

 查询直接使用 get  <index_name>/_settings 如下所示:

 

get sku_goods/_settings
查询结果:
{
  "sku_goods" : {
    "settings" : {
      "index" : {
        "refresh_interval" : "1s",
        "number_of_shards" : "6",
        "provided_name" : "sku_goods",
        "max_result_window" : "20000000",
        "creation_date" : "1688377089617",
        "number_of_replicas" : "1",
        "uuid" : "0MwkqyZjQNqlCZvD_2nroA",
        "version" : {
          "created" : "7040099"
        }
      }
    }
  }
}

 

方案2:修改配置文件elasticsearch.yml,增加下列配置,并重启elasticsearch。

index.max_result_window: 100000000

 

 方案3:scroll 游标

    ES支持scroll滚屏查询,不过根据ES官网的描述,scroll查询是很耗性能的方式,不建议在实时查询中运用。官方已不推荐使用滚动查询进行深度分页查询,因为无法保存索引状态。

方案4:search_after查询

    这里官方推荐的解决大型搜索引擎场景下深度分页问题,search_after有点类似scroll,但是和scroll又不一样,它提供一个活动的游标,通过上一次查询最后一条数据来进行下一次查询。他的一些要求:

    1)不支持向前搜索,只能向后执行

    2) 每次只能向后搜索1页数据

    

 

标签:index,10000,settings,less,equal,查询,window,elasticsearch,scroll
From: https://www.cnblogs.com/MrHSR/p/17531333.html

相关文章

  • 对话无服务器专家 Luca Mezzalira:你真的为 Serverless × AI 做好准备了吗?
    无服务器架构是当下云计算领域最热门的趋势之一。据统计,只有35%的技术人员还没有使用无服务器平台,越来越多的企业出于降低成本、简化运维、加快产品上市速度等原因选择转向无服务器架构。那么,开发人员该如何转变自己的开发方式以适应和充分利用无服务器架构,在业务快速变化的情况......
  • 【腾讯云 TDSQL-C Serverless 产品体验】 使用 Python 向 TDSQL-C 添加读取数据 实现
    前言TDSQL-CMySQL版(TDSQL-CforMySQL)是腾讯云自研的新一代云原生关系型数据库。融合了传统数据库、云计算与新硬件技术的优势,为用户提供具备高弹性、高性能、海量存储、安全可靠的数据库服务。TDSQL-CMySQL版100%兼容MySQL5.7、8.0。实现超百万级QPS的高吞吐,最高PB级智......
  • 简单理解 TiDB Serverless branching
    作者:shiyuhang0TiDBServerless作为TiDB的云上产品。提供了一种完全托管的、自动扩缩容的TiDB部署方式,可以让用户无需关心底层节点,即可快速使用TiDB数据库,并根据应用负载自动扩缩容。TiDBServerless在2023.07.10正式GA,同时带来了TiDBServerlessbranching.什么是......
  • 基于 Vercel & TiDB Serverless 的 chatbot
    作者:shiyuhang0#前言TiDBServerless去年就有和Vercel的集成了,同时还有一个bookstoretemplate方便大家体验。但个人感觉bookstore不够炫酷,借2023TiDBhackthon的机会,我搞了个maskchatbot,你可以在maskchatbot上选定角色,基于此生成prompt来更好的使用ChatGPT......
  • 2023-08-22:请用go语言编写。给定一个长度为N的正数数组,还有一个正数K, 返回有多少子序
    2023-08-22:请用go语言编写。给定一个长度为N的正数数组,还有一个正数K,返回有多少子序列的最大公约数为K。结果可能很大,对1000000007取模。1<=N<=10^5,1<=arr[i]<=10^5。来自腾讯笔试。来自左程云。答案2023-08-22:算法过程分步描述如下:1.初始化数组dp、cnt和pow2,长度为MAX......
  • 关于Serverless服务的几点建议
    通过迅速灵活以及容量巨大的弹性伸缩,无服务器架构能很好地解决关键功能的性能瓶颈,但它并不是完美的:不仅需要修改设计去适应它,对熟悉的编程模型进行调整,还要解决诸如规划预算、安全等等问题。但总的来说,它为云上的应用提供了另一种选择——并且具有难以抵挡的诱惑:极大地简化应用......
  • 为什么使用HashMap的键存的是自定义的键时需要重写hashcode和equals方法?
    当hashMap的键存的是自定义的键时需要重写对象的hashcode和equals方法存入的是对象时,应该hashMapd的键不能存储的值不能相同,如果重写方法的hashcode()方法,他会默认调用object类的hashcode方法,但是object的hashcode方法时地址值计算出来的hash值,并不是内容,这个时候就需要重......
  • Docker rootless部署应用
    一、创建普通用户并赋予sudo权限免密切换rootuseraddairechomcwlWS93Kjn0BCL9|passwdair--stdincd/etcchmod600sudoersvisudoers ###################################################################################Samethingwithoutapassword#%whee......
  • Serverless 应用托管助力企业加速创新
    作者:熊峰云原生时代的Serverless应用托管架构回顾过去十年,数字化转型将科技创新与商业元素不断融合、重构,重新定义了新业态下的增长极。商业正在从大工业时代的固化范式进化成面向创新型商业组织与新商业物种的崭新模式。随着数字化转型在中国各行业广泛深入,不管是行业巨头,还是中......
  • Serverless 应用托管助力企业加速创新
    作者:熊峰云原生时代的Serverless应用托管架构回顾过去十年,数字化转型将科技创新与商业元素不断融合、重构,重新定义了新业态下的增长极。商业正在从大工业时代的固化范式进化成面向创新型商业组织与新商业物种的崭新模式。随着数字化转型在中国各行业广泛深入,不管是行业巨头,还......