Class: ElasticSearch::Client
- Inherits:
-
Object
- Object
- ElasticSearch::Client
- Defined in:
- lib/elastic_search/client.rb
Instance Method Summary collapse
- #bulk(objects) ⇒ Object
- #create_index(index_name, options = {}) ⇒ Object
- #delete_index(index_name) ⇒ Object
- #execute(request) ⇒ Object
- #get_index(index_name) ⇒ Object (also: #[])
- #has_index?(index_name) ⇒ Boolean
-
#initialize(transport) ⇒ Client
constructor
A new instance of Client.
Constructor Details
#initialize(transport) ⇒ Client
Returns a new instance of Client.
3 4 5 6 |
# File 'lib/elastic_search/client.rb', line 3 def initialize(transport) @transport = transport @indexes = {} end |
Instance Method Details
#bulk(objects) ⇒ Object
34 35 36 37 38 |
# File 'lib/elastic_search/client.rb', line 34 def bulk(objects) body = objects.flatten.join("\n") + "\n" request = Request.new({ method: :post, action: :bulk, body: body }) execute(request) end |
#create_index(index_name, options = {}) ⇒ Object
13 14 15 16 17 18 |
# File 'lib/elastic_search/client.rb', line 13 def create_index(index_name, = {}) body = { mappings: [:mappings], settings: [:settings] }.reject { |_, v| v.nil? } request = Request.new({ method: :post, index: index_name, body: body }) status = self.execute(request).status get_index(index_name) if status.eql?(200) || status.eql?(201) end |
#delete_index(index_name) ⇒ Object
20 21 22 23 |
# File 'lib/elastic_search/client.rb', line 20 def delete_index(index_name) request = Request.new({ method: :delete, index: index_name }) execute(request) end |
#execute(request) ⇒ Object
40 41 42 |
# File 'lib/elastic_search/client.rb', line 40 def execute(request) @transport.execute(request) end |
#get_index(index_name) ⇒ Object Also known as: []
8 9 10 |
# File 'lib/elastic_search/client.rb', line 8 def get_index(index_name) @indexes[index_name.to_sym] ||= ElasticSearch::Index.new(index_name, self) end |
#has_index?(index_name) ⇒ Boolean
25 26 27 28 29 30 31 32 |
# File 'lib/elastic_search/client.rb', line 25 def has_index?(index_name) request = Request.new({ method: :head, index: index_name }) begin execute(request).status.between?(200, 206) rescue ElasticSearch::NotFoundError return false end end |