1

我正在尝试在我的 rails 应用程序中使用 Tire 实现 ElasticSearch。我做了一个非常基本的设置:

country.rb
class Country < ActiveRecord::Base
  attr_accessible :name

  include Tire::Model::Search
  include Tire::Model::Callbacks
end

home.html.erb
<%= form_tag '/pages/search', :method => 'get' do %>
  <p>
    <%= text_field_tag :query, params[:query] %>
    <%= submit_tag "Search", name: nil %>
  </p>
<% end %>

pages_controller.rb
class PagesController < ApplicationController
  def search
      @countries = Country.search(params)
  end
end

我收到一条错误消息:

400 : {"error":"SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[wy5c-7SwS2q0fXPjUg0gYg][countries][3]: SearchParseException[[countries][3]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\"query\":{\"query_string\":{\"query\":{\"utf8\":\"\\u2713\",\"query\":\"C\",\"controller\":\"pages\",\"action\":\"search\"}}},\"size\":10}]]]; nested: QueryParsingException[[countries] [query_string] query does not support [utf8]]; }{[wy5c-7SwS2q0fXPjUg0gYg][countries][2]: SearchParseException[[countries][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\"query\":{\"query_string\":{\"query\":{\"utf8\":\"\\u2713\",\"query\":\"C\",\"controller\":\"pages\",\"action\":\"search\"}}},\"size\":10}]]]; nested: QueryParsingException[[countries] [query_string] query does not support [utf8]]; }{[wy5c-7SwS2q0fXPjUg0gYg][countries][1]: SearchParseException[[countries][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\"query\":{\"query_string\":{\"query\":{\"utf8\":\"\\u2713\",\"query\":\"C\",\"controller\":\"pages\",\"action\":\"search\"}}},\"size\":10}]]]; nested: QueryParsingException[[countries] [query_string] query does not support [utf8]]; }{[wy5c-7SwS2q0fXPjUg0gYg][countries][0]: SearchParseException[[countries][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\"query\":{\"query_string\":{\"query\":{\"utf8\":\"\\u2713\",\"query\":\"C\",\"controller\":\"pages\",\"action\":\"search\"}}},\"size\":10}]]]; nested: QueryParsingException[[countries] [query_string] query does not support [utf8]]; }{[wy5c-7SwS2q0fXPjUg0gYg][countries][4]: SearchParseException[[countries][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\"query\":{\"query_string\":{\"query\":{\"utf8\":\"\\u2713\",\"query\":\"C\",\"controller\":\"pages\",\"action\":\"search\"}}},\"size\":10}]]]; nested: QueryParsingException[[countries] [query_string] query does not support [utf8]]; }]","status":400}

谁能看到我在这里缺少什么?非常感谢所有的帮助者!

4

1 回答 1

2

尝试这个:

def search
   @countries = Country.search(params[:query])
end
于 2013-10-20T09:07:29.263 回答