From c7571504d4de9bd6b511b233889559b475352682 Mon Sep 17 00:00:00 2001 From: Macartur Sousa Date: Mon, 27 Jun 2016 16:56:46 -0300 Subject: [PATCH] Fixing search using sort by --- plugins/elasticsearch/controllers/elasticsearch_plugin_controller.rb | 2 +- plugins/elasticsearch/helpers/elasticsearch_helper.rb | 20 ++++++++++---------- plugins/elasticsearch/views/elasticsearch_plugin/search.html.erb | 4 +++- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/plugins/elasticsearch/controllers/elasticsearch_plugin_controller.rb b/plugins/elasticsearch/controllers/elasticsearch_plugin_controller.rb index 62659f4..ae6cfdc 100644 --- a/plugins/elasticsearch/controllers/elasticsearch_plugin_controller.rb +++ b/plugins/elasticsearch/controllers/elasticsearch_plugin_controller.rb @@ -27,6 +27,6 @@ class ElasticsearchPluginController < ApplicationController def define_search_fields_types @search_filter_types = ElasticsearchHelper::search_filters - @selected_filter_field = (params[:selected_filter_field]) + @selected_filter_field = (params[:selected_filter_field] || :relevance).to_sym end end diff --git a/plugins/elasticsearch/helpers/elasticsearch_helper.rb b/plugins/elasticsearch/helpers/elasticsearch_helper.rb index c2cad56..9208927 100644 --- a/plugins/elasticsearch/helpers/elasticsearch_helper.rb +++ b/plugins/elasticsearch/helpers/elasticsearch_helper.rb @@ -13,9 +13,9 @@ module ElasticsearchHelper def self.search_filters { - :lexical => { label: _("Alphabetical Order")}, - :recent => { label: _("More Recent Order")}, - :access => { label: _("More accessed")} + :relevance => { label: _("Relevance")}, + :lexical => { label: _("Alphabetical")}, + :recent => { label: _("More Recent")}, } end @@ -35,10 +35,10 @@ module ElasticsearchHelper def get_sort_by sort_by case sort_by - when "lexical" - "name.raw" - when "recent" - "created_at" + when "lexical" + { "name.raw" => {"order" => "asc" }} + when "recent" + { "created_at" => {"order" => "desc"}} end end @@ -105,9 +105,9 @@ module ElasticsearchHelper query = { query: query_method(text, fields) } - if sort_by - query[:sort] = sort_by - end + + query[:sort] = [sort_by,"_score"] if sort_by + query end diff --git a/plugins/elasticsearch/views/elasticsearch_plugin/search.html.erb b/plugins/elasticsearch/views/elasticsearch_plugin/search.html.erb index cce109c..b5b06f5 100644 --- a/plugins/elasticsearch/views/elasticsearch_plugin/search.html.erb +++ b/plugins/elasticsearch/views/elasticsearch_plugin/search.html.erb @@ -14,7 +14,9 @@

<%= _("Sort by") %>

-- libgit2 0.21.2