Module: Mongoid::Elasticsearch
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/mongoid/elasticsearch.rb,
lib/mongoid/elasticsearch/es.rb,
lib/mongoid/elasticsearch/index.rb,
lib/mongoid/elasticsearch/utils.rb,
lib/mongoid/elasticsearch/railtie.rb,
lib/mongoid/elasticsearch/version.rb,
lib/mongoid/elasticsearch/indexing.rb,
lib/mongoid/elasticsearch/response.rb,
lib/mongoid/elasticsearch/callbacks.rb,
lib/mongoid/elasticsearch/pagination.rb
Defined Under Namespace
Modules: Callbacks, Indexing, Pagination, Utils Classes: Es, Index, Railtie, Response
Constant Summary collapse
- VERSION =
"0.10.0"
Class Method Summary collapse
- .create_all_indexes! ⇒ Object
-
.search(query, options = {}) ⇒ Object
search multiple models.
Class Method Details
.create_all_indexes! ⇒ Object
96 97 98 99 100 101 102 |
# File 'lib/mongoid/elasticsearch.rb', line 96 def self.create_all_indexes! # puts "creating ES indexes" Mongoid::Elasticsearch.registered_models.each do |model_name| model = model_name.constantize model.es.index.create unless model.es_skip_create end end |
.search(query, options = {}) ⇒ Object
search multiple models
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/mongoid/elasticsearch.rb', line 105 def self.search(query, = {}) if query.is_a?(String) query = {q: Utils.clean(query)} end # use `_all` or empty string to perform the operation on all indices # regardless whether they are managed by Mongoid::Elasticsearch or not unless query.key?(:index) query.merge!(index: Mongoid::Elasticsearch.registered_indexes.join(','), ignore_indices: 'missing', ignore_unavailable: true) end page = [:page] per_page = [:per_page] query[:size] = ( per_page.to_i ) if per_page query[:from] = ( page.to_i <= 1 ? 0 : (per_page.to_i * (page.to_i-1)) ) if page && per_page [:wrapper] ||= :model client = ::Elasticsearch::Client.new Mongoid::Elasticsearch..dup Response.new(client, query, true, nil, ) end |