module ElasticQueue::Percolation::ClassMethods
Public Instance Methods
dynamically_percolate(model, percolator_body)
click to toggle source
# File lib/elastic_queue/percolation.rb, line 26 def dynamically_percolate(model, percolator_body) search_id = SecureRandom.uuid # create a dynamic percolator with the query params, index our model in it and see if there are any matches search_client.index index: '_percolator', type: 'dynamic_percolator', id: search_id, body: percolator_body, refresh: true search = search_client.percolate index: 'dynamic_percolator', body: { doc: model.indexed_for_queue, query: { term: { _id: search_id } } } search_client.delete index: '_percolator', type: 'dynamic_percolator', id: search_id search end
percolator_queries()
click to toggle source
# File lib/elastic_queue/percolation.rb, line 6 def percolator_queries queries = {} search = search_client.search index: '_percolator', body: { query: { match_all: {} } }, size: 1000 search['hits']['hits'].each { |hit| queries[hit['_id']] = hit['_source'] } queries end
register_percolator_query(name, body)
click to toggle source
# File lib/elastic_queue/percolation.rb, line 22 def register_percolator_query(name, body) search_client.index index: '_percolator', type: index_name, id: name, body: body end
reverse_search(model)
click to toggle source
# File lib/elastic_queue/percolation.rb, line 13 def reverse_search(model) percolation = search_client.percolate index: index_name, body: { doc: model.indexed_for_queue } percolation['matches'] end
unregister_percolator_query(name)
click to toggle source
# File lib/elastic_queue/percolation.rb, line 18 def unregister_percolator_query(name) search_client.delete index: '_percolator', type: index_name, id: name end