简体   繁体   中英

Tire::Search::SearchRequestFailed error about utf8

I'm trying to implement ElasticSearch with Tire in my rails app. I did a pretty basic setup:

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

and i'm getting an error saying:

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}

Can anyone see what i'm missing here? Thanks a lot to all helpers!

Try this:

def search
   @countries = Country.search(params[:query])
end

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM