当前位置: 首页 > 知识库问答 >
问题:

Ruby on Rails App: ElasticSearch错误"type"=>"cluster_block_exception"

淳于鹏
2023-03-14
{"type"=>"cluster_block_exception", "reason"=>"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"} on item with id '2'

这是我得到的错误。我所做的:

rails db:drop db:create db:migrate
rails c and Model.reindex (failed)

错误:

  [1] pry(main)> Post.reindex
  Post Load (0.4ms)  SELECT  "posts".* FROM "posts" ORDER BY "posts"."id" ASC 
  LIMIT $1  [["LIMIT", 1000]]
  Post Import (137.9ms)  {"count":1,"id":1}
  Elasticsearch::Transport::Transport::Errors::Forbidden: [403] {"error": 
  {"root_cause":[{"type":"cluster_block_exception","reason":"blocked by: 
  [FORBIDDEN/12/index read-only / allow delete 
  (api)];"}],"type":"cluster_block_exception","reason":"blocked by: 
  [FORBIDDEN/12/index read-only / allow delete (api)];"},"status":403}
  from 
  /Users/CHAFET/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/elasticsearch- 
  transport-6.1.0/lib/elasticsearch/transport/transport/base.rb:205:in 
  `__raise_transport_error'

然后我又回到我的rails控制台,运行“Post”。搜索索引。删除'

  Post Import (99.1ms)  {"count":1,"id":1}
  => true

然后,我又试着去看我的模特“show”或“save”,结果在下面的叙述中出现了一个错误:

{"type"=>"cluster_block_exception", "reason"=>"blocked by: [FORBIDDEN/12/index 
read-only / allow delete (api)];"} on item with id '2'
  • 当我按下“创建帖子”时,它会给我一个错误

这是我的邮政控制器:

class PostsController < ApplicationController
    before_action :set_post, only: [ :edit, :update, :destroy, :show]
    skip_before_action :authenticate_user!

    def index
      if params[:query]
        @posts = Post.search(params[:query])
      else
        @posts = Post.all
      end
        @top_post = Post.order(view: :desc).first
        @popular_posts = Post.order(view: :desc).first(4) - [@top_post]
    end

    def new
      @post = Post.new
    end

    def create
      @post = Post.new(post_params)
      @post.view = 0
      @post.user = current_user
      if @post.save
        redirect_to dashboard_path
      else
        render :new
      end
    end

    def show
        @popular_posts = Post.order(view: :desc).first(4) - [@top_post]
        @post.view += 1
        @post.save
    end

    def dashboard
        @posts = Post.all
    end

    def edit
    end

    def update
      @post.update(post_params)
      redirect_to post_path
   end

    def destroy
      @post.destroy
      redirect_to dashboard_path
    end

    private

    def set_post
      @post = Post.find(params[:id])
    end

    def post_params
      params.require(:post).permit(:title, :content, :photo)
    end
end

共有1个答案

夏知
2023-03-14

试试这个解决方案https://stackoverflow.com/a/50609418/3573300我遇到了类似的情况,这是因为我的集群上没有更多的空间了

 类似资料:
  • 问题内容: 下面的查询我正在Ubuntu 12,MySQL 5.1版本中执行并收到上述错误: 您的SQL语法有误;在第9行的“ TYPE = MyISAM”附近检查与MySQL服务器版本相对应的手册以使用正确的语法 谁能建议出什么问题了? 问题答案: 更换 与 问题是“ TYPE = MyISAM”在MySQL版本更新中应为“ ENGINE = MyISAM”-简单的搜索/替换已解决了该问题。

  • 问题内容: 我的Java代码出现此错误 这是hibernate传递的查询: 我已经查看了与此错误有关的所有问题。但是在所有这些问题中,用户本身都在传递查询“ ”,因此他们可以将“ ” 更改为“ ”,但是hibernate在这里负责创建表,因此我不知道错误在哪里以及如何解决。 这是我的配置文件: 这是我的映射文件: 这是我的课程文件: 问题答案: 问题是该方言适用于MySQL 4.x或更早版本。由该

  • 问题内容: 我正在使用http.FileServer来提供mp3文件的目录,该模板随后在javascript中。但是,该响应使用 代替。我如何设置FileServer响应的mime类型,我看到了这个问题在golang HTTPFileServer的Content-Type标头上设置了’charset’属性,但是我仍然不确定如何覆盖mime类型。 我的代码如下所示: 我得到的错误是: 问题答案: 这

  • 问题内容: 这是我的错误(如果您需要更多信息,请询问)-错误SQL查询: MySQL说: 1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第6行的“ TYPE = MyISAM”附近使用 问题答案: 如语法所示: 注意 较早的选项是的同义词。在MySQL 4.0中已弃用,在MySQL 5.5中已删除。 升级到MySQL 5.5或更高版本时,必须转换依赖

  • 本文向大家介绍MYSQL中 TYPE=MyISAM 错误的解决方法,包括了MYSQL中 TYPE=MyISAM 错误的解决方法的使用技巧和注意事项,需要的朋友参考一下 create 语句后面的TYPE=MyISAM TYPE=MyISAM 和 ENGINE=MyISAM 都是设置数据库存储引擎的语句 ,(老版本的MySQL使用TYPE而不是ENGINE(例如,TYPE = MYISAM)。 MyS

  • 问题内容: 在尝试使用Hibernate + Spring重新创建数据库时,生成的SQL会追加到每个创建语句的末尾。这似乎导致我的MySQL5.5.9设置出现问题。它产生以下错误: 您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在第1行的’type = InnoDB’附近使用正确的语法 如果我手动删除type = InnoBD并在MySQL中粘贴create命令,则它可以正常工