Commit c7571504d4de9bd6b511b233889559b475352682
1 parent
9adc4947
Exists in
elasticsearch_sort
Fixing search using sort by
Signed-off-by: Macartur Sousa <macartur.sc@gmail.com> Signed-off-by: Arthur Jahn <stutrzbecher@gmail.com>
Showing
3 changed files
with
14 additions
and
12 deletions
Show diff stats
plugins/elasticsearch/controllers/elasticsearch_plugin_controller.rb
@@ -27,6 +27,6 @@ class ElasticsearchPluginController < ApplicationController | @@ -27,6 +27,6 @@ class ElasticsearchPluginController < ApplicationController | ||
27 | 27 | ||
28 | def define_search_fields_types | 28 | def define_search_fields_types |
29 | @search_filter_types = ElasticsearchHelper::search_filters | 29 | @search_filter_types = ElasticsearchHelper::search_filters |
30 | - @selected_filter_field = (params[:selected_filter_field]) | 30 | + @selected_filter_field = (params[:selected_filter_field] || :relevance).to_sym |
31 | end | 31 | end |
32 | end | 32 | end |
plugins/elasticsearch/helpers/elasticsearch_helper.rb
@@ -13,9 +13,9 @@ module ElasticsearchHelper | @@ -13,9 +13,9 @@ module ElasticsearchHelper | ||
13 | 13 | ||
14 | def self.search_filters | 14 | def self.search_filters |
15 | { | 15 | { |
16 | - :lexical => { label: _("Alphabetical Order")}, | ||
17 | - :recent => { label: _("More Recent Order")}, | ||
18 | - :access => { label: _("More accessed")} | 16 | + :relevance => { label: _("Relevance")}, |
17 | + :lexical => { label: _("Alphabetical")}, | ||
18 | + :recent => { label: _("More Recent")}, | ||
19 | } | 19 | } |
20 | end | 20 | end |
21 | 21 | ||
@@ -35,10 +35,10 @@ module ElasticsearchHelper | @@ -35,10 +35,10 @@ module ElasticsearchHelper | ||
35 | 35 | ||
36 | def get_sort_by sort_by | 36 | def get_sort_by sort_by |
37 | case sort_by | 37 | case sort_by |
38 | - when "lexical" | ||
39 | - "name.raw" | ||
40 | - when "recent" | ||
41 | - "created_at" | 38 | + when "lexical" |
39 | + { "name.raw" => {"order" => "asc" }} | ||
40 | + when "recent" | ||
41 | + { "created_at" => {"order" => "desc"}} | ||
42 | end | 42 | end |
43 | end | 43 | end |
44 | 44 | ||
@@ -105,9 +105,9 @@ module ElasticsearchHelper | @@ -105,9 +105,9 @@ module ElasticsearchHelper | ||
105 | query = { | 105 | query = { |
106 | query: query_method(text, fields) | 106 | query: query_method(text, fields) |
107 | } | 107 | } |
108 | - if sort_by | ||
109 | - query[:sort] = sort_by | ||
110 | - end | 108 | + |
109 | + query[:sort] = [sort_by,"_score"] if sort_by | ||
110 | + | ||
111 | query | 111 | query |
112 | end | 112 | end |
113 | 113 |
plugins/elasticsearch/views/elasticsearch_plugin/search.html.erb
@@ -14,7 +14,9 @@ | @@ -14,7 +14,9 @@ | ||
14 | <h3 class="box-title"><%= _("Sort by") %></h3> | 14 | <h3 class="box-title"><%= _("Sort by") %></h3> |
15 | <ul> | 15 | <ul> |
16 | <% for type, value in @search_filter_types %> | 16 | <% for type, value in @search_filter_types %> |
17 | - <li><%= link_to value[:label], "?selected_type=#{@selected_type}&query=#{@query}&selected_filter_field=#{type}" %></li> | 17 | + <li class="select-search-type <%= "active" if type == @selected_filter_field %>"> |
18 | + <%= link_to value[:label], "?selected_type=#{@selected_type}&query=#{@query}&selected_filter_field=#{type}" %> | ||
19 | + </li> | ||
18 | <% end %> | 20 | <% end %> |
19 | </ul> | 21 | </ul> |
20 | </div> | 22 | </div> |