开发者

详解Elasticsearch如何把一个索引变为只读

目录
  • 正文
  • 设置为只读

正文

将索引设置为只读可能听起来很奇怪,但在 Elasticsearch 中执行此类操作是可能的。想象一下这样一种情况,你特别需要限制对索引的写入操作,无论是维护、业务规则还是任何其他原因。让我们学习如何将索引配置为已读以及如何撤消操作。

我们先使用如下的命令来创建一个叫做 test 的索引:

  PUT test/_doc/1
  {
    "content": "I am xiaoguo from Elastic"
  }

设置为只读

要进行此更改,我们需要更新索引设置。 下面的命令将使索引成为只读的。

  PUT /test/_settings
  {
    "index": {
      "blocks": {
        "write": true
      }
    }
  }

执行完上面的命令后,我们可以再接着创建一个如下的一个文档:

  PUT test/_doc/2
  {
    "content": "I am an evangelist as well"
  }

我们可以看到如下的一开发者_开发培训个响应:

 {
   "error": {
     "root_cause": [
       {
         "type"编程客栈: "cluster_block_exception",
         "reason": "index [test] blocked by: [FORBIDDEN/8/index write (api)];"
       }
     ],
     "type": "cluster_block_exception",
      "reason": "index [test] blocked by: [FORBIDDEN/8/index write (api)];"
    },
    "status": 403
  }

要恢复只需将状态从 true 更改为 false。我们试着运行如下的命令:

  PUT /test/_settings
  {
    "index": {
      "blocks": {
        "write": false
      }
    }
  }

我们再次写入我们想要的文档。我们可以看到这次的写入是成功的:

  PUT test/_doc/2
  {
    "content": "I am an evangelist as well"
  }

上面的响应为:

 {
   "_index": "test",
   "_id": "2",
   "_version": 1,
   "result": "cr编程eated",
   "_shards": {
     "total": 2,
     "successfuljs": 1,
     "failed": 0
    }http://www.devze.com,
    "_seq_no": 1,
    "_primary_term": 1
  }

希望这个能帮助到你。

以上就是详解Elasticsearch如何把一个索引变为只读的详细内容,更多关于Elawww.devze.comsticsearch索引变只读的资料请关注我们其它相关文章!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新开发

开发排行榜