首页 > 其他分享 >ElasticSearch之Clone index API

ElasticSearch之Clone index API

时间:2023-12-02 15:45:22浏览次数:35  
标签:index testindex Clone 索引 001 API true

使用已有的索引,复制得到一个索引。

关闭testindex_001的写入操作,命令样例如下:

curl -X PUT "https://localhost:9200/testindex_001/_settings?pretty" -H 'Content-Type: application/json' -d'
{
  "settings": {
    "index.blocks.write": true
  }
}
' --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPH=QBE+s5=*lo7F9"

通过复制testindex_001来创建新的index,命令样例如下:

curl -X POST "https://localhost:9200/testindex_001/_clone/cloned-testindex_001?pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPH=QBE+s5=*lo7F9"

执行结果的样例,如下:

{
  "acknowledged" : true
}

或者使用PUT方法,命令样例如下:

curl -X PUT "https://localhost:9200/testindex_001/_clone/cloned-testindex_002?pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPH=QBE+s5=*lo7F9"

执行结果的样例,如下:

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "cloned-testindex_002"
}

假如复制前没有关闭写入,复制操作将失败,提示信息,样例如下:

{
  "error" : {
    "root_cause" : [
      {
        "type" : "illegal_state_exception",
        "reason" : "index testindex_001 must be read-only to resize index. use \"index.blocks.write=true\""
      }
    ],
    "type" : "illegal_state_exception",
    "reason" : "index testindex_001 must be read-only to resize index. use \"index.blocks.write=true\""
  },
  "status" : 500
}

恢复testindex_001的写入操作,命令样例如下:

curl -X PUT "https://localhost:9200/testindex_001/_settings?pretty" -H 'Content-Type: application/json' -d'
{
  "settings": {
    "index.blocks.write": false
  }
}
' --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPH=QBE+s5=*lo7F9"

执行结果的样例,如下:

{
  "acknowledged" : true
}

实现原理
复制的操作过程:

  • 依据源索引的参数和数据,使用目标索引的名称,创建一个新的索引对象。
  • 将源索引相关的segment的对象和文件,关联至目标索引。
    • 假如节点的运行平台的文件系统支持POSIX语义中的硬链接,则使用硬链接方式。
    • 假如节点的运行平台的文件系统不支持POSIX语义中的硬链接,则使用复制方式,相对要耗时,同时占用存储空间。
  • 更新目标索引的状态,类似关闭后重新打开的索引。

约束项:

  • 目标索引的名称需要符合命名规范。
  • 目标索引不存在存在,否则复制操作将失败。
  • 目标索引和源索引,主分片的数量需要一致。
  • 参与复制操作的节点,需要有充足的存储空间来容纳新的索引的分片和副本。

方法参数
参考Create index API
方法的请求消息体
参考Create index API

方法的响应消息体
参考Create index API

相关资料

标签:index,testindex,Clone,索引,001,API,true
From: https://www.cnblogs.com/jackieathome/p/17871685.html

相关文章

  • ElasticSearch之Create index API
    创建指定名称的index。命令样例如下:curl-XPUT"https://localhost:9200/testindex_002?pretty"-H'Content-Type:application/json'-d'{"settings":{"index":{"number_of_shards":3,"number......
  • ElasticSearch之Clear cache API
    本方法用于清理缓存。命令样例如下:curl-XPOST"https://localhost:9200/testindex_001/_cache/clear?pretty"--cacert$ES_HOME/config/certs/http_ca.crt-u"elastic:ohCxPH=QBE+s5=*lo7F9"执行结果的样例,如下:{"_shards":{"total":2,......
  • 【JavaSE】一些常见API(Object、Objects、Math、System、BigDecimal、包装类、Arrays)
    Object类Object类介绍toString方法直接println(对象名),默认会自动调用(对象名.toString),而.toString默认是返回地址信息->全类名(包名+类名)@地址的十六进制哈希值,因此如果println(对象名)控制台没有输出地址值,说明该类一定重写了Object类的toString方法,比如String类和Arr......
  • Java之API详解之Biginteger类的详解
     6BigInteger类6.1引入平时在存储整数的时候,Java中默认是int类型,int类型有取值范围:-2147483648~2147483647。如果数字过大,我们可以使用long类型,但是如果long类型也表示不下怎么办呢?就需要用到BigInteger,可以理解为:大的整数。有多大呢?理论上最大到42亿的21亿次方基本上在内存撑......
  • .NET Core|--调用C++库|--docker环境下让web api应用程序调用C++类库
    前言#前提安装docker环境~启动docker~#多说一句,为什么我要搞这个一个镜像,既包含gcc开发环境,又包含.NET开发环境我的api应用程序是基于.NET写的,但是我的这个api程序,又要调用c++的一些东西,特别是涉及一些画图之类的,所以就需要gcc的开发环境,最终搞了这么一......
  • Java--java.lang.String有个 indexOf()方法,但是要注意它是区分大小写的
    首先这个indexOf(Stringstr)方法的作用:如果要检索的字符串值没有出现,则该方法返回-1。1.如果要处理的字符串对大小写不敏感,可以将该字符串统一转成大写或者小写,然后再indexOf。例如处理:User-Agent:Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,like......
  • 「盘点」界面控件DevExtreme UI v23.1中的API增强
    DevExtreme拥有高性能的HTML5/JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NETCore,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac,到ASP.NETCore或Vue,DevExtreme包含全面的高性能和响应式UI小部件集合,可在传统Web和下一代移动应用程序中......
  • 学习笔记3:JavaSE & API(异常处理)
    1、Java中的错误(1)所有错误的超类:Throwable(2)Throwable的子类:子类:Error,系统级别错误、运行环境错误。比如,虚拟机内存溢出。子类:Exception,异常情况,通常是逻辑问题导致的程序级别错误,可在运行期间被解决。比如,空指针,下标越界。(3)通常,程序中处理的异常都是Exception。(4)错误输出:S......
  • Fastapi中dependency的生命周期
    https://bobobo80.com/2021/fastapizhong-dependencyde-sheng-ming-zhou-qi.html发现问题最近使用fastapi时,出现了一个alchemysql数据库连接池的错误。超过了默认的连接池限制。按理说自己的服务只有一个人在用,应该不会出现这种问题。sqlalchemy.exc.TimeoutError:QueuePool......
  • .net core(web api) 后台 +uniapp移动端自动更新
    移动端采用uniapp开发后台采用.netcore先到插件市场找到对应的插件  然后将插件安装到 然后在移动端项目pages.json"path":"uni_modules/rt-uni-update/components/rt-uni-update/rt-uni-update","style":{"app-plus":{"......