elastic_adapter 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/.hound.yml +3 -0
  3. data/.rubocop.yml +8 -0
  4. data/.ruby.yml +261 -0
  5. data/.travis.yml +6 -0
  6. data/README.md +87 -8
  7. data/elastic_adapter.gemspec +1 -0
  8. data/examples/basic_usage.rb +164 -0
  9. data/lib/elastic_adapter/decoration/count_response.rb +0 -2
  10. data/lib/elastic_adapter/decoration/decorator.rb +2 -4
  11. data/lib/elastic_adapter/decoration/response_decorator_factory.rb +3 -6
  12. data/lib/elastic_adapter/decoration/search_response.rb +0 -2
  13. data/lib/elastic_adapter/decoration/suggestion_response.rb +0 -1
  14. data/lib/elastic_adapter/decoration/validation_response.rb +0 -1
  15. data/lib/elastic_adapter/document_type.rb +12 -2
  16. data/lib/elastic_adapter/index.rb +103 -10
  17. data/lib/elastic_adapter/response.rb +2 -1
  18. data/lib/elastic_adapter/version.rb +1 -1
  19. data/spec/cassettes/ElasticAdapter_Index/_count/empty_index/is_a_response.yml +1 -1
  20. data/spec/cassettes/ElasticAdapter_Index/_count/empty_index/{returs_the_amount_of_all_documents.yml → returns_the_amount_of_all_documents.yml} +1 -1
  21. data/spec/cassettes/ElasticAdapter_Index/_count/empty_index.yml +57 -0
  22. data/spec/cassettes/ElasticAdapter_Index/_count/not_empty_index/is_a_response.yml +1 -1
  23. data/spec/cassettes/ElasticAdapter_Index/_count/not_empty_index/returns_1.yml +1 -1
  24. data/spec/cassettes/ElasticAdapter_Index/_count/not_empty_index.yml +84 -0
  25. data/spec/cassettes/ElasticAdapter_Index/_create_index/index_is_present/response/has_an_exception.yml +2 -2
  26. data/spec/cassettes/ElasticAdapter_Index/_create_index/index_is_present/response/is_a_Response.yml +2 -2
  27. data/spec/cassettes/ElasticAdapter_Index/_create_index/index_is_present.yml +57 -0
  28. data/spec/cassettes/ElasticAdapter_Index/_create_index/index_not_present/response/has_no_exception.yml +2 -29
  29. data/spec/cassettes/ElasticAdapter_Index/_create_index/index_not_present/response/is_a_Response.yml +2 -29
  30. data/spec/cassettes/ElasticAdapter_Index/_create_index/index_not_present/response.yml +30 -0
  31. data/spec/cassettes/ElasticAdapter_Index/_delete_index/index_not_present/repsonse/has_an_exception.yml +1 -1
  32. data/spec/cassettes/ElasticAdapter_Index/_delete_index/index_not_present/repsonse/is_a_Response.yml +1 -1
  33. data/spec/cassettes/ElasticAdapter_Index/_delete_index/index_present/repsonse/has_no_exception.yml +1 -28
  34. data/spec/cassettes/ElasticAdapter_Index/_delete_index/index_present/repsonse/has_no_exceptionElasticAdapter_Index/_delete_index/index_present/repsonse.yml +30 -0
  35. data/spec/cassettes/ElasticAdapter_Index/_delete_index/index_present/repsonse/is_a_Response.yml +1 -28
  36. data/spec/cassettes/ElasticAdapter_Index/_delete_index/index_present/repsonse/is_a_ResponseElasticAdapter_Index/_delete_index/index_present/repsonse.yml +30 -0
  37. data/spec/cassettes/ElasticAdapter_Index/_get/document_exists/response/contains_the_document.yml +1 -1
  38. data/spec/cassettes/ElasticAdapter_Index/_get/document_exists.yml +84 -0
  39. data/spec/cassettes/ElasticAdapter_Index/_index/existing_document/doesn_t_change_the_document_count.yml +3 -3
  40. data/spec/cassettes/ElasticAdapter_Index/_index/existing_document/invokes_to_hash_on_the_document.yml +1 -1
  41. data/spec/cassettes/ElasticAdapter_Index/_index/existing_document/updates_the_document.yml +1 -1
  42. data/spec/cassettes/ElasticAdapter_Index/_index/existing_document.yml +84 -0
  43. data/spec/cassettes/ElasticAdapter_Index/_index/new_document/indexes_a_document.yml +3 -3
  44. data/spec/cassettes/ElasticAdapter_Index/_index/new_document/invokes_to_hash_on_the_document.yml +2 -2
  45. data/spec/cassettes/ElasticAdapter_Index/_index/new_document.yml +57 -0
  46. data/spec/cassettes/ElasticAdapter_Index/_search/match_all/returns_all_documents.yml +3 -3
  47. data/spec/cassettes/ElasticAdapter_Index/_search/zoo/returns_one_document.yml +3 -3
  48. data/spec/cassettes/ElasticAdapter_Index/_search/zoo/returns_the_wanted_document.yml +3 -3
  49. data/spec/cassettes/ElasticAdapter_Index/_search.yml +111 -0
  50. data/spec/cassettes/ElasticAdapter_Index/_suggest/query_ba_/returns_bar.yml +2 -2
  51. data/spec/cassettes/ElasticAdapter_Index/_suggest/query_ba_/returns_one_result.yml +2 -2
  52. data/spec/cassettes/ElasticAdapter_Index/_suggest.yml +111 -0
  53. data/spec/cassettes/ElasticAdapter_Index/_validate/invalid_query/is_a_response.yml +4 -3
  54. data/spec/cassettes/ElasticAdapter_Index/_validate/invalid_query/is_false.yml +1 -1
  55. data/spec/cassettes/ElasticAdapter_Index/_validate/valid_query/is_a_response.yml +3 -3
  56. data/spec/cassettes/ElasticAdapter_Index/_validate/valid_query/is_true.yml +1 -1
  57. data/spec/cassettes/ElasticAdapter_Index/_validate.yml +57 -0
  58. data/spec/index/count_spec.rb +46 -0
  59. data/spec/index/create_index_spec.rb +39 -0
  60. data/spec/index/delete_index_spec.rb +29 -0
  61. data/spec/index/get_spec.rb +29 -0
  62. data/spec/index/index_spec.rb +60 -0
  63. data/spec/index/search_spec.rb +37 -0
  64. data/spec/index/shared_context.rb +37 -0
  65. data/spec/index/shared_examples.rb +19 -0
  66. data/spec/index/suggest_spec.rb +44 -0
  67. data/spec/index/unit_spec.rb +69 -0
  68. data/spec/index/validate_spec.rb +55 -0
  69. data/spec/spec_helper.rb +6 -1
  70. data/spec/support/index_helper.rb +78 -0
  71. metadata +72 -7
  72. data/spec/index_spec.rb +0 -458
@@ -1,13 +1,24 @@
1
+ # rubocop:disable Metrics/LineLength
1
2
  module ElasticAdapter
2
3
  # This class is intended to hold information about
3
4
  # a document in an elasticsearch index
4
5
  #
5
6
  # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping.html Elasticsearch Mappings
6
7
  #
8
+ # @example
9
+ # document_type = ElasticAdatper::DocumentType.new("test_doc", {
10
+ # test_doc: {
11
+ # properties: {
12
+ # name: {
13
+ # type: "string"
14
+ # }
15
+ # }
16
+ # }
17
+ # })
18
+ #
7
19
  # @attr_reader [String] name the name of the document
8
20
  # @attr_reader [Hash] mappings the mappings for the document
9
21
  class DocumentType
10
-
11
22
  attr_reader :name, :mappings
12
23
 
13
24
  # @param [String] name
@@ -16,6 +27,5 @@ module ElasticAdapter
16
27
  @name = name
17
28
  @mappings = mappings
18
29
  end
19
-
20
30
  end
21
31
  end
@@ -1,19 +1,60 @@
1
1
  module ElasticAdapter
2
- # This class encapsulates the access to an elasticsearch index
2
+ # This class encapsulates the access to a Elasticsearch::Transport::Client
3
+ # and provides an implementation of the repository pattern
4
+ #
5
+ # @attr_reader [String] name the name of the index
6
+ # @attr_reader [Hash] settings the index settings
7
+ # @attr_reader [DocumentType] document_type a DocumentType
8
+ # with the document name and it's mappings
9
+ # @attr_reader [String] url the url to elasticsearch
10
+ # @attr_reader [Boolean] log print degub log to $stdout
11
+ # @attr_reader [Client] client the client who
12
+ # handles the communication with elasticsearch
13
+ #
14
+ # @example Initialization
15
+ # index = ElasticAdapter::Index.new(
16
+ # name: "test_index",
17
+ # settings: { number_of_shards: 1 },
18
+ # document_type: ElasticAdapter::DocumentType.new("test_doc", mappings: {
19
+ # test_doc: {
20
+ # properties: {
21
+ # foo: { type: "string" }
22
+ # }
23
+ # }
24
+ # }
25
+ # ),
26
+ # url: "localhost:9200",
27
+ # log: true
28
+ # )
3
29
  class Index
4
30
  attr_reader :name, :settings, :document_type, :url, :log, :client
5
31
 
32
+ # @param [Hash] params
33
+ # @option params [String] :name required
34
+ # @option params [Hash] :settings required
35
+ # @option params [DocumentType] :document_type required
36
+ # @option params [String] :url required
37
+ # @option params [Boolean] :log required
38
+ # @option params [Client] client optional: A client. Defaults to
39
+ # Elasticsearch#Transport#Client
6
40
  def initialize(params)
7
41
  @name = params.fetch(:name)
8
42
  @settings = params.fetch(:settings)
9
43
  @document_type = params.fetch(:document_type)
10
44
  @url = params.fetch(:url)
11
45
  @log = params.fetch(:log)
12
- @client = params.fetch(:client, Elasticsearch::Client.new(url: url, log: log))
46
+ @client = params.fetch :client do
47
+ Elasticsearch::Client.new(url: url, log: log)
48
+ end
13
49
 
14
50
  self
15
51
  end
16
52
 
53
+ # Creates the index with it's settings and mappings
54
+ #
55
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-create-index.html Elasticsearch create index
56
+ #
57
+ # @return [ElasticAdapter::Response]
17
58
  def create_index
18
59
  handle_api_call do
19
60
  client.indices.create(
@@ -26,18 +67,40 @@ module ElasticAdapter
26
67
  end
27
68
  end
28
69
 
70
+ # Deletes the index
71
+ #
72
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-delete-index.html Elasticsearch delete index
73
+ #
74
+ # @return [ElasticAdapter::Response]
29
75
  def delete_index
30
76
  handle_api_call do
31
77
  client.indices.delete index: name
32
78
  end
33
79
  end
34
80
 
35
- def count(query = {query:{match_all: {}}})
81
+ # Returns the document count for the index
82
+ #
83
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-count.html#search-count Elasticsearch count api
84
+ #
85
+ # @param [Hash] query a query to count the documents for a given query. Defaults to match all
86
+ # @return [Decoration::CountResponse] the count
87
+ def count(query = { query: { match_all: {} } })
36
88
  handle_api_call do
37
89
  client.count index: name, body: query
38
90
  end
39
91
  end
40
92
 
93
+ # Indexes a Hash or anything that responds to to_hash as a document
94
+ # in the index
95
+ #
96
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-index_.html Elasticsearch index api
97
+ #
98
+ # @example
99
+ # test_index = ElasticAdapter::Index.new(...)
100
+ # test_index.index(id: 1, name: "foo")
101
+ #
102
+ # @param [Hash] document
103
+ # @return [Response]
41
104
  def index(document)
42
105
  doc = document.to_hash.merge({})
43
106
 
@@ -55,6 +118,12 @@ module ElasticAdapter
55
118
  response
56
119
  end
57
120
 
121
+ # Returns the document with the given id from the index
122
+ #
123
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-get.html Elasticsearch get api
124
+ #
125
+ # @param [Integer] id
126
+ # @return [ElasticAdapter::HitDecorator]
58
127
  def get(id)
59
128
  handle_api_call do
60
129
  client.get(
@@ -65,6 +134,16 @@ module ElasticAdapter
65
134
  end
66
135
  end
67
136
 
137
+ # Searches the index for documents matching the passed query.
138
+ #
139
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search.html Elasticsearch search apis
140
+ #
141
+ # @example
142
+ # test_index = ElasticAdatper::Index.new(...)
143
+ # test_index.seach(query: {match: {foo: "bar"}})
144
+ #
145
+ # @param [Hash] query
146
+ # @return [ElasticAdapter::SearchResponse]
68
147
  def search(query)
69
148
  handle_api_call do
70
149
  client.search(
@@ -74,6 +153,16 @@ module ElasticAdapter
74
153
  end
75
154
  end
76
155
 
156
+ # Searches the index for suggestions for the passed suggest query
157
+ #
158
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-suggesters.html Elasticsearch suggesters
159
+ #
160
+ # @example
161
+ # test_index = ElasticAdatper::Index.new(...)
162
+ # test_index.seach(name_suggestions: {text: "foo", completion: {field: "name"}})
163
+ #
164
+ # @param [Hash] query
165
+ # @return [ElasticAdapter::SuggestResponse]
77
166
  def suggest(query)
78
167
  handle_api_call do
79
168
  client.suggest(
@@ -83,6 +172,12 @@ module ElasticAdapter
83
172
  end
84
173
  end
85
174
 
175
+ # Validates the passed query
176
+ #
177
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-validate.html Elasticsearch validate api
178
+ #
179
+ # @param [Hash] query
180
+ # @return [ElasticAdapter::ValidationResponse]
86
181
  def validate(query)
87
182
  handle_api_call do
88
183
  client.indices.validate_query(
@@ -96,13 +191,11 @@ module ElasticAdapter
96
191
  private
97
192
 
98
193
  def handle_api_call
99
- begin
100
- Response.new(yield).decorate
101
- rescue Elasticsearch::Transport::Transport::Error => e
102
- Response.new(
103
- exception: e
104
- )
105
- end
194
+ Response.new(yield).decorate
195
+ rescue Elasticsearch::Transport::Transport::Error => e
196
+ Response.new(
197
+ exception: e
198
+ )
106
199
  end
107
200
  end
108
201
  end
@@ -1,7 +1,6 @@
1
1
  module ElasticAdapter
2
2
  # Serves to wrap the responses from elasticsearch
3
3
  class Response < ::ElasticAdapter::Decoration::Decorator
4
-
5
4
  # Checks if the operation was successfull
6
5
  #
7
6
  # @return [Boolean]
@@ -32,6 +31,8 @@ module ElasticAdapter
32
31
  # @param [Hash] hash
33
32
  # @return [Hash]
34
33
  def alter_object(object)
34
+ return object unless [Hash, Array].include? object.class
35
+
35
36
  object.inject({}) do |result, (key, value)|
36
37
  new_value = nil
37
38
 
@@ -1,3 +1,3 @@
1
1
  module ElasticAdapter
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -26,5 +26,5 @@ http_interactions:
26
26
  encoding: UTF-8
27
27
  string: '{"count":0,"_shards":{"total":5,"successful":5,"failed":0}}'
28
28
  http_version:
29
- recorded_at: Thu, 05 Feb 2015 21:07:02 GMT
29
+ recorded_at: Sat, 07 Feb 2015 19:44:08 GMT
30
30
  recorded_with: VCR 2.9.3
@@ -26,5 +26,5 @@ http_interactions:
26
26
  encoding: UTF-8
27
27
  string: '{"count":0,"_shards":{"total":5,"successful":5,"failed":0}}'
28
28
  http_version:
29
- recorded_at: Thu, 05 Feb 2015 19:30:14 GMT
29
+ recorded_at: Sat, 07 Feb 2015 19:44:08 GMT
30
30
  recorded_with: VCR 2.9.3
@@ -0,0 +1,57 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: put
5
+ uri: http://localhost:9200/test_index
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"mappings":{"test_doc":{"properties":{"foo":{"type":"string"},"foo_suggest":{"type":"completion"}}}},"settings":{}}'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.1
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Content-Type:
22
+ - application/json; charset=UTF-8
23
+ Content-Length:
24
+ - '21'
25
+ body:
26
+ encoding: UTF-8
27
+ string: '{"acknowledged":true}'
28
+ http_version:
29
+ recorded_at: Sat, 07 Feb 2015 19:44:05 GMT
30
+ - request:
31
+ method: delete
32
+ uri: http://localhost:9200/test_index
33
+ body:
34
+ encoding: US-ASCII
35
+ string: ''
36
+ headers:
37
+ User-Agent:
38
+ - Faraday v0.9.1
39
+ Accept-Encoding:
40
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
41
+ Accept:
42
+ - "*/*"
43
+ response:
44
+ status:
45
+ code: 200
46
+ message: OK
47
+ headers:
48
+ Content-Type:
49
+ - application/json; charset=UTF-8
50
+ Content-Length:
51
+ - '21'
52
+ body:
53
+ encoding: UTF-8
54
+ string: '{"acknowledged":true}'
55
+ http_version:
56
+ recorded_at: Sat, 07 Feb 2015 19:44:08 GMT
57
+ recorded_with: VCR 2.9.3
@@ -26,5 +26,5 @@ http_interactions:
26
26
  encoding: UTF-8
27
27
  string: '{"count":1,"_shards":{"total":5,"successful":5,"failed":0}}'
28
28
  http_version:
29
- recorded_at: Thu, 05 Feb 2015 21:05:04 GMT
29
+ recorded_at: Sat, 07 Feb 2015 19:44:14 GMT
30
30
  recorded_with: VCR 2.9.3
@@ -26,5 +26,5 @@ http_interactions:
26
26
  encoding: UTF-8
27
27
  string: '{"count":1,"_shards":{"total":5,"successful":5,"failed":0}}'
28
28
  http_version:
29
- recorded_at: Thu, 05 Feb 2015 19:30:15 GMT
29
+ recorded_at: Sat, 07 Feb 2015 19:44:14 GMT
30
30
  recorded_with: VCR 2.9.3
@@ -0,0 +1,84 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: put
5
+ uri: http://localhost:9200/test_index
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"mappings":{"test_doc":{"properties":{"foo":{"type":"string"},"foo_suggest":{"type":"completion"}}}},"settings":{}}'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.1
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Content-Type:
22
+ - application/json; charset=UTF-8
23
+ Content-Length:
24
+ - '21'
25
+ body:
26
+ encoding: UTF-8
27
+ string: '{"acknowledged":true}'
28
+ http_version:
29
+ recorded_at: Sat, 07 Feb 2015 19:44:08 GMT
30
+ - request:
31
+ method: post
32
+ uri: http://localhost:9200/test_index/test_doc
33
+ body:
34
+ encoding: UTF-8
35
+ string: '{"foo":"bar"}'
36
+ headers:
37
+ User-Agent:
38
+ - Faraday v0.9.1
39
+ Accept-Encoding:
40
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
41
+ Accept:
42
+ - "*/*"
43
+ response:
44
+ status:
45
+ code: 201
46
+ message: Created
47
+ headers:
48
+ Content-Type:
49
+ - application/json; charset=UTF-8
50
+ Content-Length:
51
+ - '99'
52
+ body:
53
+ encoding: UTF-8
54
+ string: '{"_index":"test_index","_type":"test_doc","_id":"AUtlkiRsm1jcpZVj70ky","_version":1,"created":true}'
55
+ http_version:
56
+ recorded_at: Sat, 07 Feb 2015 19:44:11 GMT
57
+ - request:
58
+ method: delete
59
+ uri: http://localhost:9200/test_index
60
+ body:
61
+ encoding: US-ASCII
62
+ string: ''
63
+ headers:
64
+ User-Agent:
65
+ - Faraday v0.9.1
66
+ Accept-Encoding:
67
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
68
+ Accept:
69
+ - "*/*"
70
+ response:
71
+ status:
72
+ code: 200
73
+ message: OK
74
+ headers:
75
+ Content-Type:
76
+ - application/json; charset=UTF-8
77
+ Content-Length:
78
+ - '21'
79
+ body:
80
+ encoding: UTF-8
81
+ string: '{"acknowledged":true}'
82
+ http_version:
83
+ recorded_at: Sat, 07 Feb 2015 19:44:14 GMT
84
+ recorded_with: VCR 2.9.3
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: http://localhost:9200/test_index
6
6
  body:
7
7
  encoding: UTF-8
8
- string: '{"mappings":{"test_index":{"properties":{"foo":{"type":"string"}}}},"settings":{"number_of_shards":1}}'
8
+ string: '{"mappings":{"test_index":{"properties":{"foo":{"type":"string","foo_suggest":{"type":"completion"}}}}},"settings":{"number_of_shards":1}}'
9
9
  headers:
10
10
  User-Agent:
11
11
  - Faraday v0.9.1
@@ -26,5 +26,5 @@ http_interactions:
26
26
  encoding: UTF-8
27
27
  string: '{"error":"IndexAlreadyExistsException[[test_index] already exists]","status":400}'
28
28
  http_version:
29
- recorded_at: Thu, 05 Feb 2015 19:30:15 GMT
29
+ recorded_at: Sat, 07 Feb 2015 19:44:17 GMT
30
30
  recorded_with: VCR 2.9.3
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: http://localhost:9200/test_index
6
6
  body:
7
7
  encoding: UTF-8
8
- string: '{"mappings":{"test_index":{"properties":{"foo":{"type":"string"}}}},"settings":{"number_of_shards":1}}'
8
+ string: '{"mappings":{"test_index":{"properties":{"foo":{"type":"string","foo_suggest":{"type":"completion"}}}}},"settings":{"number_of_shards":1}}'
9
9
  headers:
10
10
  User-Agent:
11
11
  - Faraday v0.9.1
@@ -26,5 +26,5 @@ http_interactions:
26
26
  encoding: UTF-8
27
27
  string: '{"error":"IndexAlreadyExistsException[[test_index] already exists]","status":400}'
28
28
  http_version:
29
- recorded_at: Thu, 05 Feb 2015 19:30:15 GMT
29
+ recorded_at: Sat, 07 Feb 2015 19:44:17 GMT
30
30
  recorded_with: VCR 2.9.3
@@ -0,0 +1,57 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: put
5
+ uri: http://localhost:9200/test_index
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"mappings":{"test_doc":{"properties":{"foo":{"type":"string"},"foo_suggest":{"type":"completion"}}}},"settings":{}}'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.1
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Content-Type:
22
+ - application/json; charset=UTF-8
23
+ Content-Length:
24
+ - '21'
25
+ body:
26
+ encoding: UTF-8
27
+ string: '{"acknowledged":true}'
28
+ http_version:
29
+ recorded_at: Sat, 07 Feb 2015 19:44:14 GMT
30
+ - request:
31
+ method: delete
32
+ uri: http://localhost:9200/test_index
33
+ body:
34
+ encoding: US-ASCII
35
+ string: ''
36
+ headers:
37
+ User-Agent:
38
+ - Faraday v0.9.1
39
+ Accept-Encoding:
40
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
41
+ Accept:
42
+ - "*/*"
43
+ response:
44
+ status:
45
+ code: 200
46
+ message: OK
47
+ headers:
48
+ Content-Type:
49
+ - application/json; charset=UTF-8
50
+ Content-Length:
51
+ - '21'
52
+ body:
53
+ encoding: UTF-8
54
+ string: '{"acknowledged":true}'
55
+ http_version:
56
+ recorded_at: Sat, 07 Feb 2015 19:44:17 GMT
57
+ recorded_with: VCR 2.9.3
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: http://localhost:9200/test_index
6
6
  body:
7
7
  encoding: UTF-8
8
- string: '{"mappings":{"test_index":{"properties":{"foo":{"type":"string"}}}},"settings":{"number_of_shards":1}}'
8
+ string: '{"mappings":{"test_index":{"properties":{"foo":{"type":"string","foo_suggest":{"type":"completion"}}}}},"settings":{"number_of_shards":1}}'
9
9
  headers:
10
10
  User-Agent:
11
11
  - Faraday v0.9.1
@@ -26,32 +26,5 @@ http_interactions:
26
26
  encoding: UTF-8
27
27
  string: '{"acknowledged":true}'
28
28
  http_version:
29
- recorded_at: Thu, 05 Feb 2015 19:30:15 GMT
30
- - request:
31
- method: delete
32
- uri: http://localhost:9200/test_index
33
- body:
34
- encoding: US-ASCII
35
- string: ''
36
- headers:
37
- User-Agent:
38
- - Faraday v0.9.1
39
- Accept-Encoding:
40
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
41
- Accept:
42
- - "*/*"
43
- response:
44
- status:
45
- code: 200
46
- message: OK
47
- headers:
48
- Content-Type:
49
- - application/json; charset=UTF-8
50
- Content-Length:
51
- - '21'
52
- body:
53
- encoding: UTF-8
54
- string: '{"acknowledged":true}'
55
- http_version:
56
- recorded_at: Thu, 05 Feb 2015 19:30:15 GMT
29
+ recorded_at: Sat, 07 Feb 2015 19:44:17 GMT
57
30
  recorded_with: VCR 2.9.3
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: http://localhost:9200/test_index
6
6
  body:
7
7
  encoding: UTF-8
8
- string: '{"mappings":{"test_index":{"properties":{"foo":{"type":"string"}}}},"settings":{"number_of_shards":1}}'
8
+ string: '{"mappings":{"test_index":{"properties":{"foo":{"type":"string","foo_suggest":{"type":"completion"}}}}},"settings":{"number_of_shards":1}}'
9
9
  headers:
10
10
  User-Agent:
11
11
  - Faraday v0.9.1
@@ -26,32 +26,5 @@ http_interactions:
26
26
  encoding: UTF-8
27
27
  string: '{"acknowledged":true}'
28
28
  http_version:
29
- recorded_at: Thu, 05 Feb 2015 19:30:15 GMT
30
- - request:
31
- method: delete
32
- uri: http://localhost:9200/test_index
33
- body:
34
- encoding: US-ASCII
35
- string: ''
36
- headers:
37
- User-Agent:
38
- - Faraday v0.9.1
39
- Accept-Encoding:
40
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
41
- Accept:
42
- - "*/*"
43
- response:
44
- status:
45
- code: 200
46
- message: OK
47
- headers:
48
- Content-Type:
49
- - application/json; charset=UTF-8
50
- Content-Length:
51
- - '21'
52
- body:
53
- encoding: UTF-8
54
- string: '{"acknowledged":true}'
55
- http_version:
56
- recorded_at: Thu, 05 Feb 2015 19:30:15 GMT
29
+ recorded_at: Sat, 07 Feb 2015 19:44:17 GMT
57
30
  recorded_with: VCR 2.9.3
@@ -0,0 +1,30 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: http://localhost:9200/test_index
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.1
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Content-Type:
22
+ - application/json; charset=UTF-8
23
+ Content-Length:
24
+ - '21'
25
+ body:
26
+ encoding: UTF-8
27
+ string: '{"acknowledged":true}'
28
+ http_version:
29
+ recorded_at: Sat, 07 Feb 2015 19:44:17 GMT
30
+ recorded_with: VCR 2.9.3
@@ -26,5 +26,5 @@ http_interactions:
26
26
  encoding: UTF-8
27
27
  string: '{"error":"IndexMissingException[[test_index] missing]","status":404}'
28
28
  http_version:
29
- recorded_at: Thu, 05 Feb 2015 19:30:15 GMT
29
+ recorded_at: Sat, 07 Feb 2015 19:44:23 GMT
30
30
  recorded_with: VCR 2.9.3
@@ -26,5 +26,5 @@ http_interactions:
26
26
  encoding: UTF-8
27
27
  string: '{"error":"IndexMissingException[[test_index] missing]","status":404}'
28
28
  http_version:
29
- recorded_at: Thu, 05 Feb 2015 19:30:15 GMT
29
+ recorded_at: Sat, 07 Feb 2015 19:44:23 GMT
30
30
  recorded_with: VCR 2.9.3
@@ -1,32 +1,5 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: put
5
- uri: http://localhost:9200/test_index
6
- body:
7
- encoding: UTF-8
8
- string: '{"mappings":{"test_doc":{"properties":{"foo":{"type":"string"}}}},"settings":{}}'
9
- headers:
10
- User-Agent:
11
- - Faraday v0.9.1
12
- Accept-Encoding:
13
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
- Accept:
15
- - "*/*"
16
- response:
17
- status:
18
- code: 200
19
- message: OK
20
- headers:
21
- Content-Type:
22
- - application/json; charset=UTF-8
23
- Content-Length:
24
- - '21'
25
- body:
26
- encoding: UTF-8
27
- string: '{"acknowledged":true}'
28
- http_version:
29
- recorded_at: Thu, 05 Feb 2015 19:30:15 GMT
30
3
  - request:
31
4
  method: delete
32
5
  uri: http://localhost:9200/test_index
@@ -53,5 +26,5 @@ http_interactions:
53
26
  encoding: UTF-8
54
27
  string: '{"acknowledged":true}'
55
28
  http_version:
56
- recorded_at: Thu, 05 Feb 2015 19:30:15 GMT
29
+ recorded_at: Sat, 07 Feb 2015 19:44:23 GMT
57
30
  recorded_with: VCR 2.9.3