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.