Commit 52d6389722943919ef81ea1b7c2f74ab8c843184
1 parent
7a6f1212
Exists in
elasticsearch_api
Create elasticsearch structure
Signed-off-by: Lucas Moura <lucas.moura128@gmail.com> Signed-off-by: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com> Signed-off-by: Macartur Sousa <macartur.sc@gmail.com>
Showing
3 changed files
with
60 additions
and
0 deletions
Show diff stats
plugins/elasticsearch/controllers/elasticsearch_plugin_controller.rb
0 → 100644
... | ... | @@ -0,0 +1,46 @@ |
1 | +require_dependency 'community' | |
2 | + | |
3 | +require 'elasticsearch/model' | |
4 | + | |
5 | +Community.class_eval do | |
6 | + include Elasticsearch::Model | |
7 | + include Elasticsearch::Model::Callbacks | |
8 | + | |
9 | + def self.search(query) | |
10 | + __elasticsearch__.search( | |
11 | + { | |
12 | + query: { | |
13 | + multi_match: { | |
14 | + query: query, | |
15 | + fields: ['name', 'identifier'] | |
16 | + } | |
17 | + }, | |
18 | + highlight: { | |
19 | + pre_tags: ['<em>'], | |
20 | + post_tags: ['</em>'], | |
21 | + fields: { | |
22 | + name: {}, | |
23 | + identifier: {} | |
24 | + } | |
25 | + } | |
26 | + } | |
27 | + ) | |
28 | + end | |
29 | + | |
30 | + settings index: { number_of_shards: 1 } do | |
31 | + mappings dynamic: 'false' do | |
32 | + indexes :name, analyzer: 'english', index_options: 'offsets' | |
33 | + indexes :identifier, analyzer: 'english' | |
34 | + end | |
35 | + end | |
36 | +end | |
37 | + | |
38 | +Community.__elasticsearch__.client.indices.delete index: Community.index_name rescue nil | |
39 | + | |
40 | +# Create the new index with the new mapping | |
41 | +Community.__elasticsearch__.client.indices.create \ | |
42 | + index: Community.index_name, | |
43 | + body: { settings: Community.settings.to_hash, mappings: Community.mappings.to_hash } | |
44 | + | |
45 | +# Index all Community records from the DB to Elasticsearch | |
46 | +Community.import | ... | ... |
plugins/elasticsearch/views/elasticsearch_plugin/communities.html.erb
0 → 100644