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
# File 'lib/elastic_record/index/percolator.rb', line 4

def create_percolator(name, elastic_query)
  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



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

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

#percolate(document) ⇒ Object



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

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

#percolator_exists?(name) ⇒ Boolean

Returns:

  • (Boolean)


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

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

#percolator_index_nameObject



30
31
32
# File 'lib/elastic_record/index/percolator.rb', line 30

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

#reset_percolatorObject



26
27
28
# File 'lib/elastic_record/index/percolator.rb', line 26

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