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 27  
28 28 def define_search_fields_types
29 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 31 end
32 32 end
... ...
plugins/elasticsearch/helpers/elasticsearch_helper.rb
... ... @@ -13,9 +13,9 @@ module ElasticsearchHelper
13 13  
14 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 20 end
21 21  
... ... @@ -35,10 +35,10 @@ module ElasticsearchHelper
35 35  
36 36 def get_sort_by sort_by
37 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 42 end
43 43 end
44 44  
... ... @@ -105,9 +105,9 @@ module ElasticsearchHelper
105 105 query = {
106 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 111 query
112 112 end
113 113  
... ...
plugins/elasticsearch/views/elasticsearch_plugin/search.html.erb
... ... @@ -14,7 +14,9 @@
14 14 <h3 class="box-title"><%= _("Sort by") %></h3>
15 15 <ul>
16 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 20 <% end %>
19 21 </ul>
20 22 </div>
... ...