Module: ElasticsearchHermes

Defined in:
lib/elasticsearch_hermes/hook.rb,
lib/elasticsearch_hermes/index.rb,
lib/elasticsearch_hermes/query.rb,
lib/elasticsearch_hermes/errors.rb,
lib/elasticsearch_hermes/logger.rb,
lib/elasticsearch_hermes/railtie.rb,
lib/elasticsearch_hermes/version.rb,
lib/elasticsearch_hermes/result/base.rb,
lib/elasticsearch_hermes/configuration.rb,
lib/elasticsearch_hermes/elasticsearch_hermes.rb

Defined Under Namespace

Modules: Hook, Query, Result Classes: Configuration, HermesErrors, Index, Logger, Railtie

Constant Summary collapse

VERSION =
'0.0.4.3'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject



10
11
12
# File 'lib/elasticsearch_hermes/elasticsearch_hermes.rb', line 10

def self.configuration
  @configuration ||= Configuration.new
end

Class Method Details

.clientObject



29
30
31
# File 'lib/elasticsearch_hermes/elasticsearch_hermes.rb', line 29

def self.client
  @client ||= ::Elasticsearch::Client.new(default_connect_options)
end

.connect!Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/elasticsearch_hermes/elasticsearch_hermes.rb', line 38

def self.connect!
  return unless client


  indices = fields.map { |field| field[:index_name] }.uniq

  indices.each do |index|
    Logger.log("Checking index #{index}")
    index_s = ElasticsearchHermes::Index.new(index)
    index_s.create unless index_s.exist?
  end

  info = @client.info
  cluster_version = info['version']['number']
  msg = "Connected to Elastic version #{cluster_version}."
  Logger.log(msg)
end

.default_connect_optionsObject



22
23
24
25
26
27
# File 'lib/elasticsearch_hermes/elasticsearch_hermes.rb', line 22

def self.default_connect_options
  base_es_urls = configuration.es_url
  urls = base_es_urls.split(',').compact.uniq
  options = { url: urls, retry_on_failure: 2, log: true }
  options
end

.fieldsObject



33
34
35
# File 'lib/elasticsearch_hermes/elasticsearch_hermes.rb', line 33

def self.fields
  configuration.fields
end

.refreshObject



56
57
58
# File 'lib/elasticsearch_hermes/elasticsearch_hermes.rb', line 56

def self.refresh
  client.indices.refresh
end

.resetObject



14
15
16
# File 'lib/elasticsearch_hermes/elasticsearch_hermes.rb', line 14

def self.reset
  @configuration = Configuration.new
end

.setup {|configuration| ... } ⇒ Object

Yields:



18
19
20
# File 'lib/elasticsearch_hermes/elasticsearch_hermes.rb', line 18

def self.setup
  yield(configuration)
end