Class: Elasticity::Strategies::SingleIndex
- Inherits:
-
Object
- Object
- Elasticity::Strategies::SingleIndex
- Defined in:
- lib/elasticity/strategies/single_index.rb
Constant Summary collapse
- STATUSES =
[:missing, :ok]
Instance Method Summary collapse
- #bulk {|b| ... } ⇒ Object
- #create(index_def) ⇒ Object
- #create_if_undefined(index_def) ⇒ Object
- #delete ⇒ Object
- #delete_by_query(type, body) ⇒ Object
- #delete_document(type, id) ⇒ Object
- #delete_if_defined ⇒ Object
- #flush ⇒ Object
- #get_document(type, id) ⇒ Object
- #index_document(type, id, attributes) ⇒ Object
-
#initialize(client, index_name, document_type, use_new_timestamp_format = false, include_type_name_on_create = true) ⇒ SingleIndex
constructor
A new instance of SingleIndex.
- #mapping ⇒ Object
- #mappings ⇒ Object
- #missing? ⇒ Boolean
- #recreate(index_def) ⇒ Object
- #ref_index_name ⇒ Object
- #refresh ⇒ Object
- #remap! ⇒ Object
- #search_index ⇒ Object
- #settings ⇒ Object
Constructor Details
#initialize(client, index_name, document_type, use_new_timestamp_format = false, include_type_name_on_create = true) ⇒ SingleIndex
Returns a new instance of SingleIndex.
6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/elasticity/strategies/single_index.rb', line 6 def initialize(client, index_name, document_type, = false, include_type_name_on_create = true) @client = client @index_name = index_name @document_type = document_type # included for compatibility with v7 @include_type_name_on_create = include_type_name_on_create # not currently used. included for argument compatiblity with AliasStrategy @use_new_timestamp_format = end |
Instance Method Details
#bulk {|b| ... } ⇒ Object
81 82 83 84 85 |
# File 'lib/elasticity/strategies/single_index.rb', line 81 def bulk b = Bulk::Index.new(@client, @index_name) yield b b.execute end |
#create(index_def) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/elasticity/strategies/single_index.rb', line 30 def create(index_def) if missing? @client.index_create(index: @index_name, body: index_def, include_type_name: @include_type_name_on_create) else raise IndexError.new(@index_name, "index already exist") end end |
#create_if_undefined(index_def) ⇒ Object
38 39 40 |
# File 'lib/elasticity/strategies/single_index.rb', line 38 def create_if_undefined(index_def) create(index_def) if missing? end |
#delete ⇒ Object
42 43 44 |
# File 'lib/elasticity/strategies/single_index.rb', line 42 def delete @client.index_delete(index: @index_name) end |
#delete_by_query(type, body) ⇒ Object
77 78 79 |
# File 'lib/elasticity/strategies/single_index.rb', line 77 def delete_by_query(type, body) @client.delete_by_query(index: @index_name, type: type, body: body) end |
#delete_document(type, id) ⇒ Object
65 66 67 |
# File 'lib/elasticity/strategies/single_index.rb', line 65 def delete_document(type, id) @client.delete(index: @index_name, type: type, id: id) end |
#delete_if_defined ⇒ Object
46 47 48 |
# File 'lib/elasticity/strategies/single_index.rb', line 46 def delete_if_defined delete unless missing? end |
#flush ⇒ Object
107 108 109 |
# File 'lib/elasticity/strategies/single_index.rb', line 107 def flush @client.index_flush(index: @index_name) end |
#get_document(type, id) ⇒ Object
69 70 71 |
# File 'lib/elasticity/strategies/single_index.rb', line 69 def get_document(type, id) @client.get(index: @index_name, type: type, id: id) end |
#index_document(type, id, attributes) ⇒ Object
55 56 57 58 59 60 61 62 63 |
# File 'lib/elasticity/strategies/single_index.rb', line 55 def index_document(type, id, attributes) res = @client.index(index: @index_name, type: type, id: id, body: attributes) if id = res["_id"] [id, res["created"]] else raise IndexError.new(@update_alias, "failed to index document. Response: #{res.inspect}") end end |
#mapping ⇒ Object
101 102 103 104 105 |
# File 'lib/elasticity/strategies/single_index.rb', line 101 def mapping @client.index_get_mapping(index: @index_name, type: @document_type).values.first rescue Elasticsearch::Transport::Transport::Errors::NotFound nil end |
#mappings ⇒ Object
93 94 95 96 97 98 99 |
# File 'lib/elasticity/strategies/single_index.rb', line 93 def mappings ActiveSupport::Deprecation.warn( 'Elasticity::Strategies::SingleIndex#mappings is deprecated, '\ 'use mapping instead' ) mapping end |
#missing? ⇒ Boolean
26 27 28 |
# File 'lib/elasticity/strategies/single_index.rb', line 26 def missing? not @client.index_exists(index: @index_name) end |
#recreate(index_def) ⇒ Object
50 51 52 53 |
# File 'lib/elasticity/strategies/single_index.rb', line 50 def recreate(index_def) delete_if_defined create(index_def) end |
#ref_index_name ⇒ Object
18 19 20 |
# File 'lib/elasticity/strategies/single_index.rb', line 18 def ref_index_name @index_name end |
#refresh ⇒ Object
111 112 113 |
# File 'lib/elasticity/strategies/single_index.rb', line 111 def refresh @client.index_refresh(index: @index_name) end |
#remap! ⇒ Object
22 23 24 |
# File 'lib/elasticity/strategies/single_index.rb', line 22 def remap! raise NotImplementedError end |
#search_index ⇒ Object
73 74 75 |
# File 'lib/elasticity/strategies/single_index.rb', line 73 def search_index @index_name end |
#settings ⇒ Object
87 88 89 90 91 |
# File 'lib/elasticity/strategies/single_index.rb', line 87 def settings @client.index_get_settings(index: @index_name, type: @document_type).values.first rescue Elasticsearch::Transport::Transport::Errors::NotFound nil end |