Module: ElasticQueue::Percolation::ClassMethods
- Defined in:
- lib/elastic_queue/percolation.rb
Instance Method Summary collapse
- #dynamically_percolate(model, percolator_body) ⇒ Object
- #percolator_queries ⇒ Object
- #register_percolator_query(name, body) ⇒ Object
- #reverse_search(model) ⇒ Object
- #unregister_percolator_query(name) ⇒ Object
Instance Method Details
#dynamically_percolate(model, percolator_body) ⇒ Object
26 27 28 29 30 31 32 33 |
# 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 ⇒ Object
6 7 8 9 10 11 |
# 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) ⇒ Object
22 23 24 |
# 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) ⇒ Object
13 14 15 16 |
# 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) ⇒ Object
18 19 20 |
# File 'lib/elastic_queue/percolation.rb', line 18 def unregister_percolator_query(name) search_client.delete index: '_percolator', type: index_name, id: name end |