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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 81930c441e75a5180feaf4c83e2bfd2c56c5b4ca
4
- data.tar.gz: 68a12ce9d23fd52993aaa17107c7e0203c069a10
3
+ metadata.gz: ca49773931614d5ca56517d8d3944521fb1ee3a4
4
+ data.tar.gz: e9e012689bc7f94c8d9fb4d5d7001aff7653592c
5
5
  SHA512:
6
- metadata.gz: b849aaf675784c2c9ea8c45add69a5d8d2a1ecb766b7b48e4587a98c4740533069623d1bd0142b303a5e37b3b2004d1587e93f0d1303a9a9aaaea321b4771d92
7
- data.tar.gz: 6ff1279329c4e213b7e660e9c4b4960a0a3e9425ca76774152fa2906cc49d33b39903924cd09681b10e47df179029d117ca204c0467dc7215937f4b75a163486
6
+ metadata.gz: 119b0c54f87925b6b7b846e181a0797b4eccebebda877bc509f1b71ec40397510ea056b0d5f676ab2429f688dbd5cc9e122c930001df0b32d31c585d0ed15fab
7
+ data.tar.gz: 7fb77764cda5b9a10f4d6b5056494a354c25136c331f6e1eb27e6a6ec532168026233c26f1a3bf10fa911616e3768874799bf6cbe781cf9f6365e82fe4c215ef
@@ -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
- index_s.create unless index_s.exist?
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
- def fields
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
- fields_to_index.each do |field|
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
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ElasticsearchHermes
4
+ module Result
5
+ class Hit
6
+ #TODO: abstract hits from results class
7
+ end
8
+ end
9
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ElasticsearchHermes
4
- VERSION = '0.0.6'
4
+ VERSION = '0.0.7'
5
5
  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.6
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