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 | 64 | |
65 | 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 | 86 | end |
95 | - query | |
87 | + query_exp | |
96 | 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 | 108 | end |
101 | 109 | |
102 | 110 | end | ... | ... |
plugins/elasticsearch/views/elasticsearch_plugin/_person_display.html.erb
... | ... | @@ -3,7 +3,7 @@ |
3 | 3 | <%= profile_image person %> |
4 | 4 | </div> |
5 | 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 | 7 | <div class="body"> |
8 | 8 | <h2><%= link_to person.name, person.url %></h2> |
9 | 9 | <p><%= person.description %></p> | ... | ... |