elasticsearch_hermes 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
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