Commit 8913303c9d52418634b3eef81902e085260dc191
Committed by
Macartur Sousa
1 parent
382bcf69
Exists in
elasticsearch_sort
Adds lexical sort for searchs without expression
Showing
2 changed files
with
37 additions
and
29 deletions
Show diff stats
plugins/elasticsearch/helpers/elasticsearch_helper.rb
@@ -64,39 +64,47 @@ module ElasticsearchHelper | @@ -64,39 +64,47 @@ module ElasticsearchHelper | ||
64 | 64 | ||
65 | private | 65 | private |
66 | 66 | ||
67 | - def get_query text, klass=nil | ||
68 | - fields = klass.nil? ? (fields_from_models searchable_models) : (fields_from_models [klass]) | ||
69 | - query = {} | ||
70 | - unless text.blank? | ||
71 | - text = text.downcase | ||
72 | - query = { | ||
73 | - query: { | ||
74 | - multi_match: { | ||
75 | - query: text, | ||
76 | - type: "phrase", | ||
77 | - fields: fields, | ||
78 | - zero_terms_query: "none" | ||
79 | - }, | ||
80 | - }, | ||
81 | - sort: [ | ||
82 | - {"name.raw" => {"order" => "asc"}} | ||
83 | - ], | ||
84 | - suggest: { | ||
85 | - autocomplete: { | ||
86 | - text: text, | ||
87 | - term: { | ||
88 | - field: "name", | ||
89 | - suggest_mode: "always" | ||
90 | - } | ||
91 | - } | 67 | + def searchable_models |
68 | + SEARCHABLE_TYPES.except(:all).keys.map { | model | model.to_s.classify.constantize } | ||
69 | + end | ||
70 | + | ||
71 | + def query_method expression, fields | ||
72 | + query_exp = {} | ||
73 | + if expression.blank? | ||
74 | + query_exp = { | ||
75 | + match_all: {} | ||
76 | + } | ||
77 | + else | ||
78 | + query_exp = { | ||
79 | + multi_match: { | ||
80 | + query: expression, | ||
81 | + type: "phrase", | ||
82 | + fields: fields, | ||
83 | + zero_terms_query: "none" | ||
92 | } | 84 | } |
93 | } | 85 | } |
94 | end | 86 | end |
95 | - query | 87 | + query_exp |
96 | end | 88 | end |
97 | 89 | ||
98 | - def searchable_models | ||
99 | - SEARCHABLE_TYPES.except(:all).keys.map { | model | model.to_s.classify.constantize } | 90 | + def get_query text="", klass=nil |
91 | + fields = klass.nil? ? (fields_from_models searchable_models) : (fields_from_models [klass]) | ||
92 | + query = { | ||
93 | + query: query_method(text, fields), | ||
94 | + sort: [ | ||
95 | + {"name.raw" => {"order" => "asc"}} | ||
96 | + ], | ||
97 | + suggest: { | ||
98 | + autocomplete: { | ||
99 | + text: text, | ||
100 | + term: { | ||
101 | + field: "name", | ||
102 | + suggest_mode: "always" | ||
103 | + } | ||
104 | + } | ||
105 | + } | ||
106 | + } | ||
107 | + query | ||
100 | end | 108 | end |
101 | 109 | ||
102 | end | 110 | end |
plugins/elasticsearch/views/elasticsearch_plugin/_person_display.html.erb
@@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
3 | <%= profile_image person %> | 3 | <%= profile_image person %> |
4 | </div> | 4 | </div> |
5 | <div class="right-side"> | 5 | <div class="right-side"> |
6 | - <%= person.created_at.strftime("%d %B %Y at %H:%M") %> - <%= person.name %> <span class="model-label"><%= _("Person") %></span> | 6 | + <%= person.created_at.strftime("%d %B %Y at %H:%M") %> - <span class="model-label"><%= _("Person") %></span> |
7 | <div class="body"> | 7 | <div class="body"> |
8 | <h2><%= link_to person.name, person.url %></h2> | 8 | <h2><%= link_to person.name, person.url %></h2> |
9 | <p><%= person.description %></p> | 9 | <p><%= person.description %></p> |