Commit c7571504d4de9bd6b511b233889559b475352682

Authored by Macartur Sousa
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>
plugins/elasticsearch/controllers/elasticsearch_plugin_controller.rb
@@ -27,6 +27,6 @@ class ElasticsearchPluginController &lt; ApplicationController @@ -27,6 +27,6 @@ class ElasticsearchPluginController &lt; 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>