Module: ElasticRecord::Index::Percolator

Included in:
ElasticRecord::Index
Defined in:
lib/elastic_record/index/percolator.rb

Instance Method Summary collapse

Instance Method Details

#create_percolator(name, elastic_query) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'lib/elastic_record/index/percolator.rb', line 4

def create_percolator(name, elastic_query)
  p "creating #{elastic_query.inspect}"
  unless exists? percolator_index_name
    create percolator_index_name
  else
    update_mapping percolator_index_name
  end

  connection.json_put "/_percolator/#{percolator_index_name}/#{name}", elastic_query
end

#delete_percolator(name) ⇒ Object



15
16
17
# File 'lib/elastic_record/index/percolator.rb', line 15

def delete_percolator(name)
  connection.json_delete "/_percolator/#{percolator_index_name}/#{name}"
end

#percolate(document) ⇒ Object



23
24
25
26
# File 'lib/elastic_record/index/percolator.rb', line 23

def percolate(document)
  # p "document = #{document}"
  connection.json_get("/#{percolator_index_name}/#{type}/_percolate", 'doc' => document)['matches']
end

#percolator_exists?(name) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/elastic_record/index/percolator.rb', line 19

def percolator_exists?(name)
  connection.json_get("/_percolator/#{percolator_index_name}/#{name}")['exists']
end

#percolator_index_nameObject



32
33
34
# File 'lib/elastic_record/index/percolator.rb', line 32

def percolator_index_name
  @percolator_index_name ||= "percolate_#{alias_name}"
end

#reset_percolatorObject



28
29
30
# File 'lib/elastic_record/index/percolator.rb', line 28

def reset_percolator
  delete(percolator_index_name) if exists?(percolator_index_name)
end