Elasticsearch索引数量限制

这篇具有很好参考价值的文章主要介绍了Elasticsearch索引数量限制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Elasticsearch的索引可以无限创建吗?

版本环境

Elasticsearch 7.9.1

验证

Elasticsearch启动

Elasticsearch启动采用默认配置
Elasticsearch索引数量限制

代码

使用SpringBoot编写测试代码,对ES进行索引创建测试。

SpringBoot连接配置
es:
  host: 127.0.0.1
  port: 9200
  scheme: http
测试类代码

单机测试,设置每个索引占用4个分片,0个副本,先创建1000个索引进行测试,是否能创建成功。

@SpringBootTest
@Slf4j
class ElasticsearchApplicationTests {

    @Autowired
    RestHighLevelClient restHighLevelClient;

    @Test
    public void test() {
        for (int i = 1; i <= 1000; i++) {
            createIndex("data_" + i);
            log.info("创建索引:data_" + i + ", 完成。");
        }
    }

    /**
     * 创建索引
     * @param idxName
     */
    public void createIndex(String idxName){
        try {
            if (!this.indexExist(idxName)) {
                log.error(" idxName={} 已经存在",idxName);
                return;
            }
            CreateIndexRequest request = new CreateIndexRequest(idxName);
            buildSetting(request);
//            request.mapping(idxSQL, XContentType.JSON);
//            request.settings() 手工指定Setting
            CreateIndexResponse res = restHighLevelClient.indices().create(request, RequestOptions.DEFAULT);
            if (!res.isAcknowledged()) {
                throw new RuntimeException("初始化失败");
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(0);
        }
    }

    /**
     * 判断索引是否存在
     * @param idxName
     * @return
     * @throws Exception
     */
    public boolean indexExist(String idxName) throws Exception {
        GetIndexRequest request = new GetIndexRequest(idxName);
        request.local(false);
        request.humanReadable(true);
        request.includeDefaults(false);
        request.indicesOptions(IndicesOptions.lenientExpandOpen());
        return restHighLevelClient.indices().exists(request, RequestOptions.DEFAULT);
    }

    /**
     * 索引设置4个分片,0个副本
     * @param request
     */
    public void buildSetting(CreateIndexRequest request){
        request.settings(Settings.builder().put("index.number_of_shards",4)
                .put("index.number_of_replicas",0));
    }

}

运行结果

直接运行测试类,运行结果:
Elasticsearch索引数量限制
当创建至250个索引后报错,创建失败,也就是在创建第251个索引时失败,具体报错内容如下:

ElasticsearchStatusException[Elasticsearch exception [type=validation_exception, reason=Validation Failed: 1: this action would add [4] total shards, but this cluster currently has [1000]/[1000] maximum shards open;]]
	at org.elasticsearch.rest.BytesRestResponse.errorFromXContent(BytesRestResponse.java:177)
	at org.elasticsearch.client.RestHighLevelClient.parseEntity(RestHighLevelClient.java:1793)
	...

报错信息提示:创建新索引时,分片数不够用,导致创建失败。

官方文档

Elasticsearch索引数量限制
ES7官方默认设置的索引分片数是1000,当分片被占满后,创建新索引失败,示例中在创建完250个索引后1000个分片已经占用完(250*4=1000)。

修改

修改elasticsearch.yml修改默认配置,根据实际需求修改分片限制数,cluster.max_shards_per_node: 10000,修改后重启ES。
Elasticsearch索引数量限制
再次运行测试类,从251开始创建索引,创建成功。
Elasticsearch索引数量限制
Elasticsearch索引数量限制文章来源地址https://www.toymoban.com/news/detail-400546.html

到了这里,关于Elasticsearch索引数量限制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何限制请求的并发数量

    需求:当前端同时发出多个api请求,在前端对请求的并发数量进行限制,做到同时只能处理有限个请求任务 设计 Scheduler 类 对需要发送的请求进行统一管理 类中配置最大并发数 “max”,并记录正在执行的请求数目 “count” 通过 await + Promise 对超出限制数量时的请求进行阻塞

    2024年02月13日
    浏览(39)
  • ES设置最大查询条数限制,打破限制,聚合分组数量限制打破

    ​ 今天在做 ElasticSearch 进行查询的时候发现,在进行分页的时候,数据超出10000以后得页数,查询的时候会报错。后查询了 es 官方文档发现,查询数量的默认值是 10000 ; 官网链接:https://www.elastic.co/guide/en/elasticsearch/reference/7.8/index-modules.html#dynamic-index-settings 报错内容: 在

    2024年02月03日
    浏览(39)
  • MySQL的字段数量以及长度限制

    行格式 紧凑的存储特性 增强的可变长度列存储 大型索引键前缀支持 压缩支持 支持的表空间类型 REDUNDANT N N N N system, file-per-table, general COMPACT Y N N N system, file-per-table, general DYNAMIC Y Y N N system, file-per-table, general COMPRESSED Y Y Y Y file-per-table, general 开发中常用的是DYNAMIC行格式,这里

    2024年02月08日
    浏览(38)
  • 设置es的返回数量超过10000条限制

    ElasticSearch官方默认限制索引查询最多只能查询10000条数据,查询第10001条数据开始就会报错: \\\"reason”:\\\"Result window is too large,from + size must be less than or equal to: [10000] but was [12000] elasticsearch中 max_result_window 有上限限制:默认10000。 第一种解决方案 1.在请求时解除限制 设置查询最

    2024年02月05日
    浏览(47)
  • dedecms限制会员每天投稿数量的解决方法

    经常有人提问怎么限制会员每天发稿数量?今天小编给大家介绍如何限制会员的投稿,当然,这是针对于dedeCMS教大家用一段代码实现每天的数量。 具体解决方法: 第一步:用FTP工具连接网站,在网站的根目录,找到 member/article_add.php 文件,传输到本地,并且用文本编辑器打

    2024年02月03日
    浏览(36)
  • Vue3:checkbox使用及限制选中数量

    2024年02月08日
    浏览(43)
  • 自定义Mybatis-plus插件(限制最大查询数量)

    需求背景 ​一次查询如果结果返回太多(1万或更多),往往会导致系统性能下降,有时更会内存不足,影响系统稳定性,故需要做限制。 解决思路 1.经分析最后决定,应限制一次查询返回的最大结果数量不应该超出1万,对于一次返回结果大于限制的时候应该抛出异常,而不

    2023年04月19日
    浏览(80)
  • 如何调整Hostease服务器cPanel中的域名数量限制

    近段时间我们的网站总是受到攻击,为了保障网站的安全,我们准备将所有网站迁移至Hostease提供的高防服务器中。我们的服务器配置是Intel I3 - 2120,8GB 内存 1TB 机械硬盘,100M 带宽出口,外加10G 防御的防御,服务器配置了cPanel面板。 我们在WHM面板中新建了cPanel账户后,发现

    2024年04月27日
    浏览(40)
  • 华为 huawei 交换机 接口 MAC 地址学习限制接入用户数量 配置示例

    目录 组网需求: 配置思路: 操作步骤: 配置文件: 如 图 2-14 所示,用户网络 1 和用户网络 2 通过 LSW 与 Switch 相连, Switch 连接 LSW 的接口为GE0/0/1 。用户网络 1 和用户网络 2 分别属于 VLAN10 和 VLAN20 。在 Switch 上,为了控制接入用户数量,可以基于接口GE0/0/1 配置 MAC 地址学习

    2024年02月20日
    浏览(47)
  • es sharding 文档数量超过最大限制,写入失败的4种解决方案

    es 插入数据的时候报错 failure in bulk execution: [0]: index [leopard_user.driver_work_detail_record], type [detail_info], id [xxx], message [ElasticsearchException[Elasticsearch exception [type=illegal_argument_exception, reason=number of documents in the index cannot exceed 2147483519]]], 超过了2^31次方 解决方案: 方案一 重新创建一个

    2024年02月03日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包