search problem

This commit is contained in:
Senad Uka
2015-10-11 06:37:17 +02:00
parent b432ca58d5
commit 3c5be78146
3 changed files with 37 additions and 25 deletions

View File

@@ -1,9 +1,18 @@
get '/search' do get '/search' do
results = { }
begin
es_client = Elasticsearch::Client.new log: true es_client = Elasticsearch::Client.new log: true
q = params[:q] q = params[:q]
# for now we do the basic query # for now we do the basic query
results = es_client.search index: 'ribica', type: 'items', body: { query: { match: { _all: q } } } results = es_client.search index: 'ribica', type: 'items', body: { query: { match: { _all: q } } }
rescue Exception => error
puts error.inspect
results = { "hits" => {"hits" => [ {"_id" => Item.first.id, "_score" => 2 }, {"_id" => Item.last.id, "_score" => 1 } ]}}
end
ids = results["hits"]["hits"].map do |r| ids = results["hits"]["hits"].map do |r|
r["_id"] r["_id"]
end end
@@ -13,6 +22,7 @@ get '/search' do
ids_with_score[r["_id"].to_i] = {:score => r["_score"], :item => nil} ids_with_score[r["_id"].to_i] = {:score => r["_score"], :item => nil}
end end
if ids.length > 0 if ids.length > 0
res = Item.where(:id => ids).to_a res = Item.where(:id => ids).to_a
# make sure we have correct relevance order, since `where in` does not guarantee order # make sure we have correct relevance order, since `where in` does not guarantee order

View File

@@ -34,7 +34,8 @@ var SearchBox = React.createClass({
}, },
onKeyPress: function(e) { onKeyPress: function(e) {
var enterKeyCode = 13; var enterKeyCode = 13;
if(e.which == enterKeyCode) { var whichKey = e.key || e.which;
if(whichKey == enterKeyCode) {
this.doSearch(); this.doSearch();
e.preventDefault(); e.preventDefault();
} }

File diff suppressed because one or more lines are too long