elasticsearch_hermes 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/elasticsearch_hermes.rb +2 -1
- data/lib/elasticsearch_hermes/elasticsearch_hermes.rb +2 -4
- data/lib/elasticsearch_hermes/index.rb +8 -6
- data/lib/elasticsearch_hermes/indexing/helper.rb +24 -0
- data/lib/elasticsearch_hermes/indexing/model.rb +25 -0
- data/lib/elasticsearch_hermes/result/hit.rb +9 -0
- data/lib/elasticsearch_hermes/version.rb +1 -1
- metadata +3 -2
- data/lib/elasticsearch_hermes/indexing.rb +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca49773931614d5ca56517d8d3944521fb1ee3a4
|
4
|
+
data.tar.gz: e9e012689bc7f94c8d9fb4d5d7001aff7653592c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 119b0c54f87925b6b7b846e181a0797b4eccebebda877bc509f1b71ec40397510ea056b0d5f676ab2429f688dbd5cc9e122c930001df0b32d31c585d0ed15fab
|
7
|
+
data.tar.gz: 7fb77764cda5b9a10f4d6b5056494a354c25136c331f6e1eb27e6a6ec532168026233c26f1a3bf10fa911616e3768874799bf6cbe781cf9f6365e82fe4c215ef
|
data/lib/elasticsearch_hermes.rb
CHANGED
@@ -5,7 +5,8 @@ require 'elasticsearch_hermes/railtie'
|
|
5
5
|
require 'elasticsearch_hermes/errors'
|
6
6
|
require 'elasticsearch_hermes/configuration'
|
7
7
|
require 'elasticsearch_hermes/index'
|
8
|
-
require 'elasticsearch_hermes/indexing'
|
8
|
+
require 'elasticsearch_hermes/indexing/model'
|
9
|
+
require 'elasticsearch_hermes/indexing/helper'
|
9
10
|
require 'elasticsearch_hermes/query'
|
10
11
|
require 'elasticsearch_hermes/result/base'
|
11
12
|
require 'elasticsearch_hermes/hook'
|
@@ -34,17 +34,15 @@ module ElasticsearchHermes
|
|
34
34
|
configuration.fields
|
35
35
|
end
|
36
36
|
|
37
|
-
|
38
37
|
def self.connect!
|
39
38
|
return unless client
|
40
39
|
|
41
|
-
|
42
40
|
indices = fields.map { |field| field[:index_name] }.uniq
|
43
41
|
|
44
42
|
indices.each do |index|
|
45
43
|
Logger.log("Checking index #{index}")
|
46
|
-
index_s = ElasticsearchHermes::Index.new(index)
|
47
|
-
|
44
|
+
index_s = ElasticsearchHermes::Index.new(name: index)
|
45
|
+
Logger.log "Missing Index #{index}" unless index_s.exist?
|
48
46
|
end
|
49
47
|
|
50
48
|
info = @client.info
|
@@ -4,28 +4,30 @@ module ElasticsearchHermes
|
|
4
4
|
class Index
|
5
5
|
attr_reader :name
|
6
6
|
|
7
|
-
def initialize(name)
|
7
|
+
def initialize(name:, fields: [])
|
8
8
|
@name = name
|
9
|
+
@fields = fields
|
9
10
|
end
|
10
11
|
|
11
12
|
def create
|
12
13
|
ElasticsearchHermes.client.indices.create index: @name, body: index_options
|
13
14
|
end
|
14
15
|
|
16
|
+
def delete
|
17
|
+
ElasticsearchHermes.client.indices.delete index: @name
|
18
|
+
end
|
19
|
+
|
15
20
|
def exist?
|
16
21
|
ElasticsearchHermes.client.indices.exists? index: @name
|
17
22
|
end
|
18
23
|
|
19
|
-
|
20
|
-
ElasticsearchHermes.fields || []
|
21
|
-
end
|
24
|
+
private
|
22
25
|
|
23
26
|
def build_field_mappings
|
24
|
-
fields_to_index = fields.select { |field| field[:index_name] == @name }
|
25
27
|
properties = {}
|
26
28
|
analyzer = {}
|
27
29
|
tokenizer = {}
|
28
|
-
|
30
|
+
@fields.each do |field|
|
29
31
|
# add checks for full_match
|
30
32
|
if field[:search_type] == :partial_match
|
31
33
|
@field_token = ngram_builder(field[:minimum_match], field[:field_name])
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ElasticsearchHermes
|
4
|
+
module Indexing
|
5
|
+
module Helper
|
6
|
+
def re_index(index_name: to_s.underscore)
|
7
|
+
delete_index(index_name: index_name)
|
8
|
+
@index_object.create
|
9
|
+
all.find_each(&:touch)
|
10
|
+
end
|
11
|
+
|
12
|
+
def delete_index(index_name: to_s.underscore)
|
13
|
+
@index_object ||= ElasticsearchHermes::Index.new(name: index_name, fields: @fields)
|
14
|
+
@index_object.delete
|
15
|
+
rescue Elasticsearch::Transport::Transport::Errors::NotFound
|
16
|
+
Logger.log("No Such index: #{index_name}")
|
17
|
+
end
|
18
|
+
|
19
|
+
def index_on(fields: [])
|
20
|
+
@fields = fields
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ElasticsearchHermes
|
4
|
+
module Indexing
|
5
|
+
module Model
|
6
|
+
def elastic_update(type: '_doc', index_name: self.class.to_s.underscore, id:, body:)
|
7
|
+
ElasticsearchHermes.client.index index_payload(
|
8
|
+
index_name: index_name,
|
9
|
+
type: type,
|
10
|
+
body: body,
|
11
|
+
id: id
|
12
|
+
)
|
13
|
+
end
|
14
|
+
|
15
|
+
def index_payload(index_name:, type:, id:, body:)
|
16
|
+
{
|
17
|
+
type: type,
|
18
|
+
index: index_name,
|
19
|
+
id: id,
|
20
|
+
body: body
|
21
|
+
}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elasticsearch_hermes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ronald Ekambi
|
@@ -42,7 +42,8 @@ files:
|
|
42
42
|
- lib/elasticsearch_hermes/errors.rb
|
43
43
|
- lib/elasticsearch_hermes/hook.rb
|
44
44
|
- lib/elasticsearch_hermes/index.rb
|
45
|
-
- lib/elasticsearch_hermes/indexing.rb
|
45
|
+
- lib/elasticsearch_hermes/indexing/helper.rb
|
46
|
+
- lib/elasticsearch_hermes/indexing/model.rb
|
46
47
|
- lib/elasticsearch_hermes/logger.rb
|
47
48
|
- lib/elasticsearch_hermes/query.rb
|
48
49
|
- lib/elasticsearch_hermes/railtie.rb
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module ElasticsearchHermes
|
4
|
-
module Indexing
|
5
|
-
def elastic_update(type: '_doc', index_name: self.class.to_s.underscore, id:, body:)
|
6
|
-
ElasticsearchHermes.client.index index_payload(
|
7
|
-
index_name: index_name,
|
8
|
-
type: type,
|
9
|
-
body: body,
|
10
|
-
id: id
|
11
|
-
)
|
12
|
-
end
|
13
|
-
|
14
|
-
def index_payload(index_name:, type:, id:, body:)
|
15
|
-
{
|
16
|
-
type: type,
|
17
|
-
index: index_name,
|
18
|
-
id: id,
|
19
|
-
body: body
|
20
|
-
}
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|