ElasticSearch修改分片数和副本数及增加字段

这篇具有很好参考价值的文章主要介绍了ElasticSearch修改分片数和副本数及增加字段。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、修改副本数
PUT test/_settings
{
    "index": {
        "number_of_replicas" : 1
    }
}
二、修改分片数
ElasticSearch中的数据会被分别存储在不同的分片上,索引库的分片数量是在索引库创建的时候通过settings去设置的,如果不设置,分片数默认是5,分片数一旦确定就不能改变。如果执行下面语句会报错

PUT test/_settings
{
    "index": {
        "number_of_shards" : 1
    }
}
随着数据量的增大,每个分片中的数据量也会不断增加,为了不使每个分片中的数据量过大,就需要增加分片的数量,但是分片数在索引库创建之初就已经确定,并且不能改变。

为了解决这个问题,ElasticSearch中设置了重新索引机制来实现。本文将通过一个案例进行演示如何通过重新索引修改分片数。

什么是重新索引
简单来说,重新索引就是创建一个和原索引库结构属性都基本一样的新的索引库,然后将原索引库中的数据复制到新的索引库当中。在新的索引库中,除了需要变更的地方,比如某些字段的数据类型和分片数,其他的所有属性都一样。

重新索引的具体实现
1. 创建学生索引库
下列是创建索引库students1的命令,这里创建一个关于学生信息的索引库,指定分片数为3。

DELETE students1
 
PUT students1
{
"settings":{
"number_of_shards":3,
"number_of_replicas":1
},
"mappings":{
"student":{
"dynamic":"strict",
"properties":{
"id":{"type": "text", "store": true},
"name":{"type": "text","store": true},
"age":{"type": "integer","store": true},
"times": {"type": "text", "index": false}
}
}
}
}
2. 插入数据
创建好索引库students1后,插入一条数据,为后面的验证做数据准备。

PUT students1/student/1 
{ "id" : "1",
 "name" : "张三", 
 "age" : 20 , 
 "times" : "2020-02-01" 
}
3. 新建索引库students2
下列是创建索引库students2的命令,与students1不同的地方是指定分片数为5,其他的属性都和students1一样。

DELETE students2 
 
PUT students2 
{ "settings":
   { "number_of_shards":5, 
   "number_of_replicas":1 
   },
  "mappings":
  { "student":{ "dynamic":"strict", "properties":{ "id":{"type": "text", "store": true}, "name":{"type": "text","store": true}, "age":{"type": "integer","store": true}, "times": {"type": "text", "index": false} } } 
 }  
}
4. 拷贝数据
通过下面命令,将students1中的数据复制到students2中,这是重新索引的核心步骤。

POST _reindex 

 "source": {  
   "index": "students1" 
  }, 
 "dest": { 
   "index": "students2" 
  } 

小结
本文通过一个简单的案例,先创建索引库students1和索引库students2,在创建students2的语句中指定新的分片数,然后将students1中数据复制到students2中,实现重新索引,以达到修改索引库分片数的目的。如果生产中需要实现重新索引,需要按照实际

索引库的情况修改创建索引库的命令,在实现重新索引之后,要将程序中的索引库指向新的索引库。另外,本文中的操作命令是通过在kibana中的命令窗口中执行的,本文重点在介绍如何通过重新索引修

三、增加字段
PUT ods_big_epid/_mapping/ods_big_epid
{
  "properties":{
    "reportDate":{
      "type": "date",
      "format":"yyyy-MM-dd HH:mm:ss"
    }
  }

————————————————
版权声明:本文为CSDN博主「半桶水的码农」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44688301/article/details/116127245文章来源地址https://www.toymoban.com/news/detail-450453.html

到了这里,关于ElasticSearch修改分片数和副本数及增加字段的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • elasticsearch副本和分片

    1.文档冲突 当我们使用index API更新文档,可以一次性读取 修改索引副本 看起来您正在尝试修改一个已经打开的索引的非动态设置index.number_of_shards。在默认情况下,Elasticsearch不允许在索引处于打开状态时修改非动态(不可更改)的设置。 curl -XPOST http://192.168.1.136:9200/es-syslo

    2024年01月17日
    浏览(50)
  • Elasticsearch的分片和副本

    Elasticsearch是一个分布式搜索和分析引擎,其设计目标是在分布式环境下处理海量数据。为了实现这个目标,Elasticsearch将数据分割成多个分片,并在多台服务器上进行存储和处理。每个分片都是一个独立的Lucene索引,可以被分配到不同的节点上。 分片可以帮助Elasticsearch水平扩

    2024年02月17日
    浏览(53)
  • elasticsearch的副本和分片的区别

    es/elasticsearch的副本和分片的区别 一:概念 (1)集群(Cluster): ES可以作为一个独立的单个搜索服务器。不过,为了处理大型数据集,实现容错和高可用性,ES可以运行在许多互相合作的服务器上。这些服务器的集合称为集群。 (2)节点(Node): 形成集群的每个服务器称

    2024年02月11日
    浏览(46)
  • ElasticSearch的集群、节点、索引、分片和副本

    Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档。为了方便大家理解,我们将Elasticsearch里存储文档数据和关系型数据库MySQL存储数据的概念进行一个类比 ES里的Index可以看做一个库,而Types相当于表,Documents则相当于表的行。 这里Types的概念已经被逐渐弱化,E

    2024年02月02日
    浏览(104)
  • Elasticsearch 的节点、集群、分片和副本 全面解析

    节点是 Elasticsearch 实例的运行实例,即一个独立的 Elasticsearch 服务进程。每个节点都是一个独立的工作单元,负责存储数据、参与数据处理(如索引、搜索、聚合等)以及参与集群的协调工作。节点可以在物理或虚拟机上单独部署,也可以在同一台机器上运行多个节点(但需

    2024年04月27日
    浏览(39)
  • Elasticsearch索引优化指南:分片、副本、mapping和analyzer

    Elasticsearch是一个开源的分布式搜索引擎,它的数据存储和查询速度非常快。然而,在面对大规模的数据集和高并发访问时,Elasticsearch的性能也可能受到一些影响。为了最大程度地提高Elasticsearch的性能,我们需要对索引进行优化。本篇博客将介绍Elasticsearch索引优化的几个关键

    2024年02月20日
    浏览(47)
  • 【Elasticsearch】索引恢复(recovery)流程梳理之副本分片数据恢复

    也是因为应用新的集群状态触发recovery,进入index阶段 进入translog 阶段。先尝试重放本地的translog到global checkpoint 向primary shard发起start recovery的请求,请求包含replica的localCheckpoint+1。(如果第二步重放translog了,localCheckpoint自然也会增加) 如果开启了soft delete并且索引是7.4版本

    2024年01月20日
    浏览(46)
  • 04_手工画图剖析Elasticsearch核心概念:NRT、索引、分片、副本等

    2.elasticsearch的核心概念 (1)Near Realtime (NRT):近实时, 从写入数据到数据可以被搜索到有一个小延迟(大概1秒);基于es执行搜索和分析可以达到秒级 (2) cluster集群:包括多个节点, 每个节点属于哪个集群是通过一个配置(集群名称,默认是elasticsearch)来决定的, 对于中小型

    2024年02月09日
    浏览(54)
  • Sql Server增加字段、修改字段、修改类型、修改默认值

    1、修改字段名: alter table 表名 rename column A to B 2、修改字段类型: alter table 表名 alter column 字段名 type not null 3、修改字段默认值 alter table 表名 add default (0) for 字段名 with values 如果字段有默认值,则需要先删除字段的约束,在添加新的默认值, select c.name from sysconstraints a i

    2024年02月06日
    浏览(40)
  • ElasticSearch - 索引增加字段并查询增加字段前的历史数据

    1. 问题引入 我们项目中有一个需求:ElasticSearch存在很多历史数据,然后需求中索引新增了一个字段,我们需要根据条件查询出历史数据,但历史数据中这个新增的字段并不存在,如何查询到历史数据呢? 1. 索引2个文档 2. 给索引增加新的字段 3. 再次索引1个文档 这个文档新

    2024年02月10日
    浏览(68)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包