首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elasticsearch::Transport::Transport::Errors::BadRequest误差heroku

Elasticsearch::Transport::Transport::Errors::BadRequest误差heroku
EN

Stack Overflow用户
提问于 2017-07-16 05:05:50
回答 1查看 1.5K关注 0票数 0

我有一个rails应用程序,它的搜索系统依赖于elasticsearch,我用盆景插件把它推到heroku上,但是每当我尝试在我的应用程序上搜索什么东西时,它都会给我日志中的错误。

代码语言:javascript
复制
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}):

我的弹性搜索控制器

代码语言:javascript
复制
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

救命啊!!

EN

回答 1

Stack Overflow用户

发布于 2017-07-16 18:18:30

盆景支持在这里。目前正在ElasticSearch5.x上提供盆景群集,而在ElasticSearch5.0中,filtered查询已经被删除。试图在5.x中使用filtered查询会导致所看到的错误消息。

从您所分享的信息来看,我认为最有可能的问题是客户端使用的是查询DSL的不推荐版本。这意味着一个不兼容的创业板版本。

通过从命令行运行此命令行,您可以检查Elasticsearch宝石的版本:

bundle show | grep elasticsearch

如果它们不是5.x.x,请在Gemfile中更新它们:

代码语言:javascript
复制
gem "elasticsearch", "~> 5"
gem "elasticsearch-rails", "~> 5"

运行bundle update elasticsearch elasticsearch-rails。将更改推到Heroku,然后再试一次搜索。

如果这没什么用,给support@bonsai.io发一封电子邮件,我们会帮你解决的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45125207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档