Module: Elasticsearch::Model::ClassMethods

Included in:
Elasticsearch::Model
Defined in:
lib/elasticsearch/model.rb

Instance Method Summary collapse

Instance Method Details

#clientObject

Get the client common for all models

Examples:

Get the client


Elasticsearch::Model.client
=> #<Elasticsearch::Client:0x007f96a7d0d000... >


135
136
137
# File 'lib/elasticsearch/model.rb', line 135

def client
  @client ||= Elasticsearch::Client.new
end

#client=(client) ⇒ Object

Note:

You have to set the client before you call Elasticsearch methods on the model, or set it directly on the model; see Elasticsearch::Model::Client::ClassMethods#client

Set the client for all models

Examples:

Configure (set) the client for all models


Elasticsearch::Model.client = Elasticsearch::Client.new host: 'http://localhost:9200', tracer: true
=> #<Elasticsearch::Client:0x007f96a6dd0d80... >


149
150
151
# File 'lib/elasticsearch/model.rb', line 149

def client=(client)
  @client = client
end

#search(query_or_payload, models = [], options = {}) ⇒ Elasticsearch::Model::Response::Response

Search across multiple models

By default, all models which include the ‘Elasticsearch::Model` module are searched

Examples:

Search across specific models


Elasticsearch::Model.search('foo', [Author, Article])

Search across all models which include the ‘Elasticsearch::Model` module


Elasticsearch::Model.search('foo')

Parameters:

  • query_or_payload (String, Hash, Object)

    The search request definition (string, JSON, Hash, or object responding to ‘to_hash`)

  • models (Array) (defaults to: [])

    The Array of Model objects to search

  • options (Hash) (defaults to: {})

    Optional parameters to be passed to the Elasticsearch client

Returns:



172
173
174
175
176
# File 'lib/elasticsearch/model.rb', line 172

def search(query_or_payload, models=[], options={})
  models = Multimodel.new(models)
  request = Searching::SearchRequest.new(models, query_or_payload, options)
  Response::Response.new(models, request)
end

#settingsObject

Access the module settings



180
181
182
# File 'lib/elasticsearch/model.rb', line 180

def settings
  @settings ||= {}
end