簡體   English   中英

Elasticsearch ::運輸::運輸::錯誤:: BadRequest錯誤heroku

[英]Elasticsearch::Transport::Transport::Errors::BadRequest error heroku

我有一個Rails應用程序,它的搜索系統取決於elasticsearch,我已經使用盆景插件將其推到heroku上,但是每當我嘗試在我的應用程序上搜索內容時,都會在日志中給我這個錯誤。

2017-07-16T04:04:44.083489+00:00 app[web.1]: Completed 500 Internal Server Error in 18ms (ActiveRecord: 1.9ms)
2017-07-16T04:04:44.084229+00:00 app[web.1]:   app/controllers/search_controller.rb:7:in `show'
2017-07-16T04:04:44.084222+00:00 app[web.1]: Elasticsearch::Transport::Transport::Errors::BadRequest ([400] {"error":{"root_cause":[{"type":"parsing_exception","reason":"no [query] registered for [filtered]","line":1,"col":22}],"type":"parsing_exception","reason":"no [query] registered for [filtered]","line":1,"col":22},"status":400}):

我的Elasticsearch控制器

class SearchController < ApplicationController
  before_action :beautify_url
  layout "simple"

  def show
    @post_records = Post.search(query_term).paginate(page: params[:page]).records
    @posts = @post_records.to_a.select { |post| post.published? }
    @users = User.search(query_term).records.to_a
    @tags = Tag.search(query_term).records
  end

  def users
    @users = User.search(query_term).records.to_a
  end

  private

    def beautify_url
      if params[:search].present?
        case params[:action]
        when "show"
          redirect_to search_url(q: params[:search][:q])
        when "users"
          redirect_to search_users_url(q: params[:search][:q])
        end
      end
    end

    def query_term
      params[:q] || ''
    end
end

請幫忙!!

盆景支持在這里。 當前在Elasticsearch 5.x上配置了盆景集群,並且從Elasticsearch 5.0開始,已filtered查詢已被刪除。 嘗試在5.x中使用filtered查詢會導致您看到該錯誤消息。

從您共享的內容來看,我想說的最可能的問題是客戶端正在使用不建議使用的Query DSL版本。 那將暗示一個不兼容的gem版本。

您可以通過在命令行中運行它來檢查Elasticsearch gems的版本:

bundle show | grep elasticsearch

如果它們不是5.xx,請在您的Gemfile中更新它們:

gem "elasticsearch", "~> 5"
gem "elasticsearch-rails", "~> 5"

並運行bundle update elasticsearch elasticsearch-rails 將更改推送到Heroku,然后再次嘗試搜索。

如果仍然不能解決問題,請發送電子郵件至support@bonsai.io,我們將幫助您解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM