elasticated 2.5.5 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +35 -2
- data/Rakefile +52 -1
- data/elasticated.gemspec +3 -1
- data/lib/elasticated.rb +20 -24
- data/lib/elasticated/aggregation.rb +3 -6
- data/lib/elasticated/aggregations/date_histogram_aggregation.rb +6 -1
- data/lib/elasticated/aggregations/filter_aggregation.rb +8 -12
- data/lib/elasticated/aggregations/filter_aggregation_evaluator.rb +1 -1
- data/lib/elasticated/aggregations/group_aggregation.rb +14 -11
- data/lib/elasticated/aggregations/range_aggregation.rb +10 -11
- data/lib/elasticated/aggregations/range_aggregation_evaluator.rb +1 -1
- data/lib/elasticated/aggregations/ranges_builder.rb +2 -2
- data/lib/elasticated/aggregations/safe_date_histogram_aggregation.rb +7 -2
- data/lib/elasticated/aggregations/subaggregated.rb +1 -1
- data/lib/elasticated/boolean_clause.rb +4 -3
- data/lib/elasticated/bulk_actions/create_action.rb +14 -0
- data/lib/elasticated/bulk_actions/delete_action.rb +30 -0
- data/lib/elasticated/bulk_actions/index_action.rb +35 -0
- data/lib/elasticated/bulk_actions/standard_action.rb +22 -0
- data/lib/elasticated/bulk_actions/update_action.rb +44 -0
- data/lib/elasticated/bulk_actions/upsert_action.rb +14 -0
- data/lib/elasticated/bulk_request.rb +58 -0
- data/lib/elasticated/bulk_request/response.rb +32 -0
- data/lib/elasticated/bulk_request/response_item.rb +39 -0
- data/lib/elasticated/client.rb +27 -3
- data/lib/elasticated/conditions/custom_condition.rb +3 -3
- data/lib/elasticated/conditions/range_condition.rb +5 -2
- data/lib/elasticated/conditions/script_condition.rb +3 -3
- data/lib/elasticated/conditions/standard_condition.rb +4 -5
- data/lib/elasticated/conditions/term_condition.rb +22 -0
- data/lib/elasticated/conditions/terms_condition.rb +2 -2
- data/lib/elasticated/conditions_builder.rb +19 -4
- data/lib/elasticated/delimiters/date_field_delimiter.rb +21 -12
- data/lib/elasticated/delimiters/standard_field_delimiter.rb +18 -2
- data/lib/elasticated/delimiters/term_field_delimiter.rb +6 -5
- data/lib/elasticated/document.rb +20 -1
- data/lib/elasticated/enum.rb +17 -0
- data/lib/elasticated/index_selector.rb +26 -25
- data/lib/elasticated/mapping.rb +2 -4
- data/lib/elasticated/mapping/builder.rb +3 -2
- data/lib/elasticated/mapping/fields_builder.rb +13 -9
- data/lib/elasticated/mapping/object_builder.rb +38 -4
- data/lib/elasticated/mapping/type_builder.rb +3 -5
- data/lib/elasticated/mixins/block_evaluation.rb +17 -0
- data/lib/elasticated/mixins/clonable.rb +60 -0
- data/lib/elasticated/mixins/configurable.rb +22 -0
- data/lib/elasticated/mixins/inspectionable.rb +16 -0
- data/lib/elasticated/partitioned_repository.rb +24 -18
- data/lib/elasticated/query.rb +27 -21
- data/lib/elasticated/query_aggregations.rb +5 -7
- data/lib/elasticated/query_conditions.rb +6 -3
- data/lib/elasticated/quick.rb +7 -0
- data/lib/elasticated/repository.rb +184 -40
- data/lib/elasticated/repository/intelligent_search.rb +3 -3
- data/lib/elasticated/repository/normal_search.rb +2 -2
- data/lib/elasticated/repository/resumable_search.rb +5 -5
- data/lib/elasticated/repository/scan_scroll_search.rb +4 -4
- data/lib/elasticated/repository/scroll_search.rb +3 -3
- data/lib/elasticated/repository/search.rb +7 -0
- data/lib/elasticated/repository/single_page_search.rb +1 -1
- data/lib/elasticated/results.rb +14 -0
- data/lib/version.rb +18 -25
- data/spec/aggregation_spec.rb +95 -16
- data/spec/bulk_request_spec.rb +158 -0
- data/spec/date_field_delimiter_spec.rb +50 -6
- data/spec/document_spec.rb +1 -5
- data/spec/integration_spec.rb +7 -7
- data/spec/mapping_spec.rb +128 -8
- data/spec/partitioned_repository_spec.rb +218 -0
- data/spec/query_conditions_spec.rb +98 -45
- data/spec/query_spec.rb +21 -28
- data/spec/repository_spec.rb +245 -0
- data/spec/results_spec.rb +0 -4
- data/spec/sample_responses/elasticsearch_bulk_response_1.json +35 -0
- data/spec/sample_responses/elasticsearch_bulk_response_2.json +20 -0
- data/spec/sample_responses/elasticsearch_count_1.json +8 -0
- data/spec/sample_responses/elasticsearch_count_2.json +8 -0
- data/spec/sample_responses/elasticsearch_get_response_1.json +10 -0
- data/spec/sample_responses/elasticsearch_get_response_2.json +6 -0
- data/spec/{elasticsearch_hit_1.json → sample_responses/elasticsearch_hit_1.json} +0 -0
- data/spec/sample_responses/elasticsearch_mget_response_1.json +25 -0
- data/spec/{elasticsearch_response_1.json → sample_responses/elasticsearch_response_1.json} +0 -0
- data/spec/{elasticsearch_response_2.json → sample_responses/elasticsearch_response_2.json} +0 -0
- data/spec/{elasticsearch_top_hits_response.json → sample_responses/elasticsearch_top_hits_response.json} +0 -0
- data/spec/spec_helper.rb +47 -0
- data/spec/spec_helper/fake_index_selector.rb +27 -0
- data/spec/term_field_delimiter_spec.rb +8 -8
- metadata +80 -26
- data/lib/elasticated/block_evaluation.rb +0 -15
- data/lib/elasticated/clonable.rb +0 -58
- data/lib/elasticated/configurable.rb +0 -20
- data/lib/elasticated/date_delimiter_factory.rb +0 -123
- data/lib/elasticated/delimiter_visitor.rb +0 -53
- data/lib/elasticated/inspectionable.rb +0 -9
- data/lib/elasticated/strategy_params_for_query_service.rb +0 -14
- data/lib/elasticated/term_delimiter_factory.rb +0 -73
- data/spec/delimiter_factory_spec.rb +0 -399
- data/spec/strategy_params_for_query_service_spec.rb +0 -387
@@ -1,387 +0,0 @@
|
|
1
|
-
require_relative 'spec_helper'
|
2
|
-
module Elasticated
|
3
|
-
|
4
|
-
describe StrategyParamsForQueryService do
|
5
|
-
let(:query){ Query.new }
|
6
|
-
let(:service){StrategyParamsForQueryService.new}
|
7
|
-
|
8
|
-
it 'should create empty delimiter' do
|
9
|
-
delimiters = []
|
10
|
-
expected = {}
|
11
|
-
actual = service.strategy_params_for_query(delimiters, query)
|
12
|
-
expect(actual).to eq expected
|
13
|
-
|
14
|
-
delimiters = [Elasticated::Delimiters::TermFieldDelimiter.new(field: :account, as: :accounts)]
|
15
|
-
actual = service.strategy_params_for_query(delimiters,query)
|
16
|
-
expect(actual).to eq expected
|
17
|
-
|
18
|
-
delimiters = [
|
19
|
-
Elasticated::Delimiters::TermFieldDelimiter.new(field: :account, as: :accounts),
|
20
|
-
Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)
|
21
|
-
]
|
22
|
-
actual = service.strategy_params_for_query(delimiters,query)
|
23
|
-
expect(actual).to eq expected
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'should create term dalimiter with a date' do
|
27
|
-
delimiters = [Elasticated::Delimiters::TermFieldDelimiter.new(field: :date)]
|
28
|
-
query.filter {equal :date, '2017-05-28'}
|
29
|
-
expected = {date: ['2017-05-28']}
|
30
|
-
actual = service.strategy_params_for_query(delimiters, query)
|
31
|
-
expect(actual).to eq expected
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'should create date delimiter with date since' do
|
35
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
36
|
-
query.filter {greater_than :date, '2017-05-28'}
|
37
|
-
expected = {date_since: '2017-05-28'}
|
38
|
-
actual = service.strategy_params_for_query(delimiters, query)
|
39
|
-
expect(actual).to eq expected
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'should create date delimiter with date until' do
|
43
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
44
|
-
query.filter {less_equal :date, '2017-05-30'}
|
45
|
-
expected = {date_until: '2017-05-30'}
|
46
|
-
actual = service.strategy_params_for_query(delimiters, query)
|
47
|
-
expect(actual).to eq expected
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'should create date delimiter with date since and date until' do
|
51
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
52
|
-
query.filter {between :date, '2017-05-28', '2017-05-30'}
|
53
|
-
expected = {date_since: '2017-05-28', date_until: '2017-05-30'}
|
54
|
-
actual = service.strategy_params_for_query(delimiters, query)
|
55
|
-
expect(actual).to eq expected
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'should create term delimiter from aggregations' do
|
59
|
-
options = {delimit_by: [:aggregations]}
|
60
|
-
delimiters = [Elasticated::Delimiters::TermFieldDelimiter.new(field: :account, as: :accounts)]
|
61
|
-
query.aggregations do
|
62
|
-
filter :account do
|
63
|
-
conditions { equal :account, 39 }
|
64
|
-
end
|
65
|
-
filter :second_account do
|
66
|
-
conditions { equal :account, 40 }
|
67
|
-
end
|
68
|
-
end
|
69
|
-
expected = {accounts: [39, 40]}
|
70
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
71
|
-
expect(actual).to eq expected
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'should create date delimiter with date since from aggregations' do
|
75
|
-
options = {delimit_by: [:aggregations]}
|
76
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
77
|
-
query.aggregations do
|
78
|
-
filter :greater do
|
79
|
-
conditions { greater_than :date, '2017-05-29' }
|
80
|
-
end
|
81
|
-
filter :greater_eq do
|
82
|
-
conditions { greater_equal :date, '2017-05-27' }
|
83
|
-
end
|
84
|
-
end
|
85
|
-
expected = {date_since: '2017-05-27'}
|
86
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
87
|
-
expect(actual).to eq expected
|
88
|
-
end
|
89
|
-
|
90
|
-
it 'should create date delimiter with date until from aggregations' do
|
91
|
-
options = {delimit_by: [:aggregations]}
|
92
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
93
|
-
query.aggregations do
|
94
|
-
filter :less do
|
95
|
-
conditions { less_than :date, '2017-05-29' }
|
96
|
-
end
|
97
|
-
filter :less_eq do
|
98
|
-
conditions { less_equal :date, '2017-05-27' }
|
99
|
-
end
|
100
|
-
end
|
101
|
-
expected = {date_until: '2017-05-29'}
|
102
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
103
|
-
expect(actual).to eq expected
|
104
|
-
end
|
105
|
-
|
106
|
-
it 'should create date delimiter with date since and date until from aggregations' do
|
107
|
-
options = {delimit_by: [:aggregations]}
|
108
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
109
|
-
query.aggregations do
|
110
|
-
filter :greater_and_less_1 do
|
111
|
-
conditions { between :date, '2017-05-24', '2017-05-25' }
|
112
|
-
end
|
113
|
-
filter :greater_and_less_2 do
|
114
|
-
conditions { between :date, '2017-05-27', '2017-05-28' }
|
115
|
-
end
|
116
|
-
end
|
117
|
-
expected = {date_since: '2017-05-24', date_until: '2017-05-28'}
|
118
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
119
|
-
expect(actual).to eq expected
|
120
|
-
end
|
121
|
-
|
122
|
-
it 'should create date delimiter without date since nor date until from aggregations' do
|
123
|
-
options = {delimit_by: [:aggregations]}
|
124
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
125
|
-
query.aggregations do
|
126
|
-
filter :greater_and_less_1 do
|
127
|
-
conditions { between :date, '2017-05-24', '2017-05-25' }
|
128
|
-
end
|
129
|
-
filter :greater_and_less_2 do
|
130
|
-
conditions { between :date, '2017-05-27', '2017-05-28' }
|
131
|
-
end
|
132
|
-
filter :not_dates do
|
133
|
-
conditions { equal :account, 39 }
|
134
|
-
end
|
135
|
-
end
|
136
|
-
expected = {}
|
137
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
138
|
-
expect(actual).to eq expected
|
139
|
-
end
|
140
|
-
|
141
|
-
it 'should create term delimiter with date from conditions and aggregations' do
|
142
|
-
options = {delimit_by: [:conditions, :aggregations]}
|
143
|
-
delimiters = [Elasticated::Delimiters::TermFieldDelimiter.new(field: :date)]
|
144
|
-
query.filter {equal :date, '2017-05-23'}
|
145
|
-
query.aggregations do
|
146
|
-
filter :date_zero do
|
147
|
-
conditions { equal :date, '2017-05-24' }
|
148
|
-
end
|
149
|
-
end
|
150
|
-
expected = {date: ['2017-05-23']}
|
151
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
152
|
-
expect(actual).to eq expected
|
153
|
-
end
|
154
|
-
|
155
|
-
it 'should create date delimiter with date since from conditions and aggregations' do
|
156
|
-
options = {delimit_by: [:conditions, :aggregations]}
|
157
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
158
|
-
query.filter {greater_than :date, '2017-05-23'}
|
159
|
-
query.aggregations do
|
160
|
-
filter :greater_than_1 do
|
161
|
-
conditions { greater_than :date, '2017-05-30' }
|
162
|
-
end
|
163
|
-
end
|
164
|
-
expected = {date_since: '2017-05-23'}
|
165
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
166
|
-
expect(actual).to eq expected
|
167
|
-
end
|
168
|
-
|
169
|
-
it 'should create date delimiter with date until from conditions and aggregations' do
|
170
|
-
options = {delimit_by: [:conditions, :aggregations]}
|
171
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
172
|
-
query.filter {less_than :date, '2017-05-23'}
|
173
|
-
query.aggregations do
|
174
|
-
filter :greater_than_1 do
|
175
|
-
conditions { less_equal :date, '2017-05-30' }
|
176
|
-
end
|
177
|
-
end
|
178
|
-
expected = {date_until: '2017-05-23'}
|
179
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
180
|
-
expect(actual).to eq expected
|
181
|
-
end
|
182
|
-
|
183
|
-
it 'should create date delimiter with date since and date until from conditions and aggregations' do
|
184
|
-
options = {delimit_by: [:conditions, :aggregations]}
|
185
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
186
|
-
query.filter {between :date, '2017-05-23', '2017-05-30'}
|
187
|
-
query.aggregations do
|
188
|
-
filter :greater_and_less_1 do
|
189
|
-
conditions { between :date, '2017-05-01', '2017-05-22' }
|
190
|
-
end
|
191
|
-
filter :greater_and_less_2 do
|
192
|
-
conditions { between :date, '2017-05-31', '2017-06-01' }
|
193
|
-
end
|
194
|
-
end
|
195
|
-
expected = {date_since: '2017-05-23', date_until: '2017-05-30'}
|
196
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
197
|
-
expect(actual).to eq expected
|
198
|
-
end
|
199
|
-
|
200
|
-
it 'should create date delimiter with date since and date until from conditions and aggregations but without query conditions defined' do
|
201
|
-
options = {delimit_by: [:conditions, :aggregations]}
|
202
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
203
|
-
query.aggregations do
|
204
|
-
filter :greater_and_less_1 do
|
205
|
-
conditions { between :date, '2017-05-01', '2017-05-22' }
|
206
|
-
end
|
207
|
-
filter :greater_and_less_2 do
|
208
|
-
conditions { between :date, '2017-05-31', '2017-06-10' }
|
209
|
-
end
|
210
|
-
end
|
211
|
-
expected = {date_since: '2017-05-01', date_until: '2017-06-10'}
|
212
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
213
|
-
expect(actual).to eq expected
|
214
|
-
end
|
215
|
-
|
216
|
-
it 'should create date delimiter with date since from conditions and aggregations when one aggregation has not date until' do
|
217
|
-
options = {delimit_by: [:conditions, :aggregations]}
|
218
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
219
|
-
query.filter {greater_than :date, '2017-05-23'}
|
220
|
-
query.aggregations do
|
221
|
-
filter :greater_and_less_1 do
|
222
|
-
conditions { between :date, '2017-05-01', '2017-05-22' }
|
223
|
-
end
|
224
|
-
filter :greater_and_less_2 do
|
225
|
-
conditions { between :date, '2017-05-31', '2017-06-10' }
|
226
|
-
end
|
227
|
-
filter :greater_eq do
|
228
|
-
conditions { greater_equal :date, '2017-05-31' }
|
229
|
-
end
|
230
|
-
end
|
231
|
-
expected = {date_since: '2017-05-23'}
|
232
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
233
|
-
expect(actual).to eq expected
|
234
|
-
end
|
235
|
-
|
236
|
-
it 'should create date delimiter with date since from conditions and aggregations when one aggregation has account filter' do
|
237
|
-
options = {delimit_by: [:conditions, :aggregations]}
|
238
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
239
|
-
query.filter {greater_than :date, '2017-05-23'}
|
240
|
-
query.aggregations do
|
241
|
-
filter :greater_and_less_1 do
|
242
|
-
conditions { between :date, '2017-05-01', '2017-05-22' }
|
243
|
-
end
|
244
|
-
filter :greater_and_less_2 do
|
245
|
-
conditions { between :date, '2017-05-31', '2017-06-10' }
|
246
|
-
end
|
247
|
-
filter :by_account do
|
248
|
-
conditions { equal :account, 39 }
|
249
|
-
end
|
250
|
-
end
|
251
|
-
expected = {date_since: '2017-05-23'}
|
252
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
253
|
-
expect(actual).to eq expected
|
254
|
-
end
|
255
|
-
|
256
|
-
it 'should create date delimiter with date since from conditions and aggregations when one aggregation has account filter' do
|
257
|
-
options = {delimit_by: [:conditions, :aggregations]}
|
258
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date), Elasticated::Delimiters::TermFieldDelimiter.new(field: :account, as: :accounts)]
|
259
|
-
query.filter {greater_than :date, '2017-05-23'}
|
260
|
-
query.aggregations do
|
261
|
-
filter :greater_and_less_1 do
|
262
|
-
conditions { between :date, '2017-05-01', '2017-05-22' }
|
263
|
-
end
|
264
|
-
filter :greater_and_less_2 do
|
265
|
-
conditions { between :date, '2017-05-31', '2017-06-10' }
|
266
|
-
end
|
267
|
-
filter :by_account do
|
268
|
-
conditions { equal :account, 39 }
|
269
|
-
end
|
270
|
-
end
|
271
|
-
expected = {date_since: '2017-05-23'}
|
272
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
273
|
-
expect(actual).to eq expected
|
274
|
-
end
|
275
|
-
|
276
|
-
it 'should create date delimiter as term' do
|
277
|
-
options = {delimit_by: [:conditions]}
|
278
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
279
|
-
query.filter {equal :date, '2017-05-23'}
|
280
|
-
expected = {date: '2017-05-23'}
|
281
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
282
|
-
expect(actual).to eq expected
|
283
|
-
end
|
284
|
-
|
285
|
-
it 'should create date delimiter as term from aggregations' do
|
286
|
-
options = {delimit_by: [:aggregations]}
|
287
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
288
|
-
query.aggregations do
|
289
|
-
filter :greater_and_less_1 do
|
290
|
-
conditions { equal :date, '2017-05-01' }
|
291
|
-
end
|
292
|
-
end
|
293
|
-
expected = {date: '2017-05-01'}
|
294
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
295
|
-
expect(actual).to eq expected
|
296
|
-
end
|
297
|
-
|
298
|
-
it 'should create date delimiter as term from condition and aggregations' do
|
299
|
-
options = {delimit_by: [:conditions, :aggregations]}
|
300
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
301
|
-
query.filter {equal :date, '2017-05-23'}
|
302
|
-
query.aggregations do
|
303
|
-
filter :greater_and_less_1 do
|
304
|
-
conditions { equal :date, '2017-05-01' }
|
305
|
-
end
|
306
|
-
end
|
307
|
-
expected = {date: '2017-05-23'}
|
308
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
309
|
-
expect(actual).to eq expected
|
310
|
-
end
|
311
|
-
|
312
|
-
it 'should create date delimiter as range from terms condition and aggregations' do
|
313
|
-
options = {delimit_by: [:conditions, :aggregations]}
|
314
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
315
|
-
query.filter {equal :date, ['2017-05-23', '2017-06-01']}
|
316
|
-
query.aggregations do
|
317
|
-
filter :greater_and_less_1 do
|
318
|
-
conditions { equal :date, '2017-05-01' }
|
319
|
-
end
|
320
|
-
end
|
321
|
-
expected = {date_since: '2017-05-23', date_until: '2017-06-01'}
|
322
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
323
|
-
expect(actual).to eq expected
|
324
|
-
end
|
325
|
-
|
326
|
-
it 'should not delimit by non-delimiters' do
|
327
|
-
options = {delimit_by: [:conditions, :aggregations]}
|
328
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
329
|
-
query.filter {equal :date, ['2017-05-23', '2017-06-01']}
|
330
|
-
query.aggregations do
|
331
|
-
filter :nothing_to_do do
|
332
|
-
conditions { equal :primary_keywords, ["hello"] }
|
333
|
-
filter :another_filter do
|
334
|
-
conditions { equal :secondary_keywords, ["bye"] }
|
335
|
-
end
|
336
|
-
end
|
337
|
-
end
|
338
|
-
expected = {date_since: '2017-05-23', date_until: '2017-06-01'}
|
339
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
340
|
-
expect(actual).to eq expected
|
341
|
-
end
|
342
|
-
|
343
|
-
it 'should create date delimiter with different objects (test insights - part 1)' do
|
344
|
-
options = {delimit_by: [:conditions, :aggregations]}
|
345
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
346
|
-
query.filter {equal :date, [Date.today]}
|
347
|
-
query.aggregations do
|
348
|
-
filter :terms_over_date do
|
349
|
-
conditions { equal :date, '2017-01-05'}
|
350
|
-
end
|
351
|
-
end
|
352
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
353
|
-
expected = {date: Date.today}
|
354
|
-
expect(actual).to eq expected
|
355
|
-
end
|
356
|
-
|
357
|
-
it 'should create date delimiter with different objects (test insights - part 2)' do
|
358
|
-
options = {delimit_by: [:conditions, :aggregations]}
|
359
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
360
|
-
query.filter {equal :date, '2017-01-05'}
|
361
|
-
query.aggregations do
|
362
|
-
filter :terms_over_date do
|
363
|
-
conditions { equal :date, [Date.today]}
|
364
|
-
end
|
365
|
-
end
|
366
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
367
|
-
expected = {date: '2017-01-05'}
|
368
|
-
expect(actual).to eq expected
|
369
|
-
end
|
370
|
-
|
371
|
-
it 'should create date delimiter with different objects (test insights - part 3)' do
|
372
|
-
options = {delimit_by: [:conditions, :aggregations]}
|
373
|
-
delimiters = [Elasticated::Delimiters::DateFieldDelimiter.new(field: :date)]
|
374
|
-
query.filter {equal :date, [Date.parse('2017-05-01')]}
|
375
|
-
query.aggregations do
|
376
|
-
filter :terms_over_date do
|
377
|
-
conditions { equal :date, [Date.today]}
|
378
|
-
end
|
379
|
-
end
|
380
|
-
actual = service.strategy_params_for_query(delimiters, query, options)
|
381
|
-
expected = {date: Date.parse('2017-05-01')}
|
382
|
-
expect(actual).to eq expected
|
383
|
-
end
|
384
|
-
|
385
|
-
end
|
386
|
-
|
387
|
-
end
|