Add REST tests for avg/min/max/sum metric aggs (#26225)
Adds some REST tests for avg/min/max/sum metric aggregations Related to #26220
This commit is contained in:
parent
6d8ef3153c
commit
2978b5df8b
|
@ -0,0 +1,176 @@
|
|||
setup:
|
||||
- do:
|
||||
indices.create:
|
||||
index: test_1
|
||||
body:
|
||||
settings:
|
||||
number_of_replicas: 0
|
||||
mappings:
|
||||
test:
|
||||
properties:
|
||||
int_field:
|
||||
type : integer
|
||||
double_field:
|
||||
type : double
|
||||
string_field:
|
||||
type: keyword
|
||||
|
||||
- do:
|
||||
bulk:
|
||||
refresh: true
|
||||
body:
|
||||
- index:
|
||||
_index: test_1
|
||||
_type: test
|
||||
_id: 1
|
||||
- int_field: 1
|
||||
double_field: 1.0
|
||||
string_field: foo
|
||||
- index:
|
||||
_index: test_1
|
||||
_type: test
|
||||
_id: 2
|
||||
- int_field: 51
|
||||
double_field: 51.0
|
||||
string_field: foo
|
||||
- index:
|
||||
_index: test_1
|
||||
_type: test
|
||||
_id: 3
|
||||
- int_field: 101
|
||||
double_field: 101.0
|
||||
string_field: foo
|
||||
- index:
|
||||
_index: test_1
|
||||
_type: test
|
||||
_id: 4
|
||||
- int_field: 151
|
||||
double_field: 151.0
|
||||
string_field: foo
|
||||
|
||||
---
|
||||
"Basic test":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_int_avg:
|
||||
avg:
|
||||
field: int_field
|
||||
the_double_avg:
|
||||
avg:
|
||||
field: double_field
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 4 }
|
||||
- match: { aggregations.the_int_avg.value: 76.0 }
|
||||
- match: { aggregations.the_double_avg.value: 76.0 }
|
||||
|
||||
---
|
||||
"Only aggs test":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
size: 0
|
||||
aggs:
|
||||
the_int_avg:
|
||||
avg:
|
||||
field: int_field
|
||||
the_double_avg:
|
||||
avg:
|
||||
field: double_field
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 0 }
|
||||
- match: { aggregations.the_int_avg.value: 76.0 }
|
||||
- match: { aggregations.the_double_avg.value: 76.0 }
|
||||
|
||||
---
|
||||
"Filtered test":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
query:
|
||||
constant_score:
|
||||
filter:
|
||||
range:
|
||||
int_field:
|
||||
gte: 50
|
||||
aggs:
|
||||
the_int_avg:
|
||||
avg:
|
||||
field: int_field
|
||||
the_double_avg:
|
||||
avg:
|
||||
field: double_field
|
||||
|
||||
- match: { hits.total: 3 }
|
||||
- length: { hits.hits: 3 }
|
||||
- match: { aggregations.the_int_avg.value: 101.0 }
|
||||
- match: { aggregations.the_double_avg.value: 101.0 }
|
||||
|
||||
|
||||
---
|
||||
"Missing field with missing param":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_missing_avg:
|
||||
avg:
|
||||
field: foo
|
||||
missing: 1
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 4 }
|
||||
- match: { aggregations.the_missing_avg.value: 1 }
|
||||
|
||||
---
|
||||
"Missing field without missing param":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_missing_avg:
|
||||
avg:
|
||||
field: foo
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 4 }
|
||||
- is_false: aggregations.the_missing_avg.value
|
||||
|
||||
---
|
||||
"Metadata test":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_int_avg:
|
||||
meta:
|
||||
foo: bar
|
||||
avg:
|
||||
field: int_field
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 4 }
|
||||
- match: { aggregations.the_int_avg.value: 76.0 }
|
||||
- match: { aggregations.the_int_avg.meta.foo: "bar" }
|
||||
|
||||
---
|
||||
"Aggregating wrong datatype test":
|
||||
|
||||
- do:
|
||||
catch: request
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_string_avg:
|
||||
avg:
|
||||
field: string_field
|
||||
|
|
@ -0,0 +1,173 @@
|
|||
setup:
|
||||
- do:
|
||||
indices.create:
|
||||
index: test_1
|
||||
body:
|
||||
settings:
|
||||
number_of_replicas: 0
|
||||
mappings:
|
||||
test:
|
||||
properties:
|
||||
int_field:
|
||||
type : integer
|
||||
double_field:
|
||||
type : double
|
||||
string_field:
|
||||
type: keyword
|
||||
- do:
|
||||
bulk:
|
||||
refresh: true
|
||||
body:
|
||||
- index:
|
||||
_index: test_1
|
||||
_type: test
|
||||
_id: 1
|
||||
- int_field: 1
|
||||
double_field: 1.0
|
||||
string_field: foo
|
||||
- index:
|
||||
_index: test_1
|
||||
_type: test
|
||||
_id: 2
|
||||
- int_field: 51
|
||||
double_field: 51.0
|
||||
string_field: foo
|
||||
- index:
|
||||
_index: test_1
|
||||
_type: test
|
||||
_id: 3
|
||||
- int_field: 101
|
||||
double_field: 101.0
|
||||
string_field: foo
|
||||
- index:
|
||||
_index: test_1
|
||||
_type: test
|
||||
_id: 4
|
||||
- int_field: 151
|
||||
double_field: 151.0
|
||||
string_field: foo
|
||||
---
|
||||
"Basic test":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_int_max:
|
||||
max:
|
||||
field: int_field
|
||||
the_double_max:
|
||||
max:
|
||||
field: double_field
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 4 }
|
||||
- match: { aggregations.the_int_max.value: 151.0 }
|
||||
- match: { aggregations.the_double_max.value: 151.0 }
|
||||
|
||||
---
|
||||
"Only aggs test":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
size: 0
|
||||
aggs:
|
||||
the_int_max:
|
||||
max:
|
||||
field: int_field
|
||||
the_double_max:
|
||||
max:
|
||||
field: double_field
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 0 }
|
||||
- match: { aggregations.the_int_max.value: 151.0 }
|
||||
- match: { aggregations.the_double_max.value: 151.0 }
|
||||
|
||||
---
|
||||
"Filtered test":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
query:
|
||||
constant_score:
|
||||
filter:
|
||||
range:
|
||||
int_field:
|
||||
lte: 60
|
||||
aggs:
|
||||
the_int_max:
|
||||
max:
|
||||
field: int_field
|
||||
the_double_max:
|
||||
max:
|
||||
field: double_field
|
||||
|
||||
- match: { hits.total: 2 }
|
||||
- length: { hits.hits: 2 }
|
||||
- match: { aggregations.the_int_max.value: 51.0 }
|
||||
- match: { aggregations.the_double_max.value: 51.0 }
|
||||
|
||||
|
||||
---
|
||||
"Missing field with missing param":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_missing_max:
|
||||
max:
|
||||
field: foo
|
||||
missing: 1
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 4 }
|
||||
- match: { aggregations.the_missing_max.value: 1 }
|
||||
|
||||
---
|
||||
"Missing field without missing param":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_missing_max:
|
||||
max:
|
||||
field: foo
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 4 }
|
||||
- is_false: aggregations.the_missing_max.value
|
||||
|
||||
---
|
||||
"Metadata test":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_int_max:
|
||||
meta:
|
||||
foo: bar
|
||||
max:
|
||||
field: int_field
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 4 }
|
||||
- match: { aggregations.the_int_max.value: 151.0 }
|
||||
- match: { aggregations.the_int_max.meta.foo: "bar" }
|
||||
|
||||
---
|
||||
"Aggregating wrong datatype test":
|
||||
|
||||
- do:
|
||||
catch: request
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_string_avg:
|
||||
avg:
|
||||
field: string_field
|
|
@ -0,0 +1,174 @@
|
|||
setup:
|
||||
- do:
|
||||
indices.create:
|
||||
index: test_1
|
||||
body:
|
||||
settings:
|
||||
number_of_replicas: 0
|
||||
mappings:
|
||||
test:
|
||||
properties:
|
||||
int_field:
|
||||
type : integer
|
||||
double_field:
|
||||
type : double
|
||||
string_field:
|
||||
type: keyword
|
||||
- do:
|
||||
bulk:
|
||||
refresh: true
|
||||
body:
|
||||
- index:
|
||||
_index: test_1
|
||||
_type: test
|
||||
_id: 1
|
||||
- int_field: 1
|
||||
double_field: 1.0
|
||||
string_field: foo
|
||||
- index:
|
||||
_index: test_1
|
||||
_type: test
|
||||
_id: 2
|
||||
- int_field: 51
|
||||
double_field: 51.0
|
||||
string_field: foo
|
||||
- index:
|
||||
_index: test_1
|
||||
_type: test
|
||||
_id: 3
|
||||
- int_field: 101
|
||||
double_field: 101.0
|
||||
string_field: foo
|
||||
- index:
|
||||
_index: test_1
|
||||
_type: test
|
||||
_id: 4
|
||||
- int_field: 151
|
||||
double_field: 151.0
|
||||
string_field: foo
|
||||
---
|
||||
"Basic test":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_int_min:
|
||||
min:
|
||||
field: int_field
|
||||
the_double_min:
|
||||
min:
|
||||
field: double_field
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 4 }
|
||||
- match: { aggregations.the_int_min.value: 1.0 }
|
||||
- match: { aggregations.the_double_min.value: 1.0 }
|
||||
|
||||
---
|
||||
"Only aggs test":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
size: 0
|
||||
aggs:
|
||||
the_int_min:
|
||||
min:
|
||||
field: int_field
|
||||
the_double_min:
|
||||
min:
|
||||
field: double_field
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 0 }
|
||||
- match: { aggregations.the_int_min.value: 1.0 }
|
||||
- match: { aggregations.the_double_min.value: 1.0 }
|
||||
|
||||
---
|
||||
"Filtered test":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
query:
|
||||
constant_score:
|
||||
filter:
|
||||
range:
|
||||
int_field:
|
||||
gte: 50
|
||||
aggs:
|
||||
the_int_min:
|
||||
min:
|
||||
field: int_field
|
||||
the_double_min:
|
||||
min:
|
||||
field: double_field
|
||||
|
||||
- match: { hits.total: 3 }
|
||||
- length: { hits.hits: 3 }
|
||||
- match: { aggregations.the_int_min.value: 51.0 }
|
||||
- match: { aggregations.the_double_min.value: 51.0 }
|
||||
|
||||
|
||||
---
|
||||
"Missing field with missing param":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_missing_min:
|
||||
min:
|
||||
field: foo
|
||||
missing: 1
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 4 }
|
||||
- match: { aggregations.the_missing_min.value: 1.0 }
|
||||
|
||||
---
|
||||
"Missing field without missing param":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_missing_min:
|
||||
min:
|
||||
field: foo
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 4 }
|
||||
- is_false: aggregations.the_missing_min.value
|
||||
|
||||
---
|
||||
"Metadata test":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_int_min:
|
||||
meta:
|
||||
foo: bar
|
||||
min:
|
||||
field: int_field
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 4 }
|
||||
- match: { aggregations.the_int_min.value: 1.0 }
|
||||
- match: { aggregations.the_int_min.meta.foo: "bar" }
|
||||
|
||||
---
|
||||
"Aggregating wrong datatype test":
|
||||
|
||||
- do:
|
||||
catch: request
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_string_min:
|
||||
min:
|
||||
field: string_field
|
||||
|
|
@ -0,0 +1,174 @@
|
|||
setup:
|
||||
- do:
|
||||
indices.create:
|
||||
index: test_1
|
||||
body:
|
||||
settings:
|
||||
number_of_replicas: 0
|
||||
mappings:
|
||||
test:
|
||||
properties:
|
||||
int_field:
|
||||
type : integer
|
||||
double_field:
|
||||
type : double
|
||||
string_field:
|
||||
type: keyword
|
||||
- do:
|
||||
bulk:
|
||||
refresh: true
|
||||
body:
|
||||
- index:
|
||||
_index: test_1
|
||||
_type: test
|
||||
_id: 1
|
||||
- int_field: 1
|
||||
double_field: 1.0
|
||||
string_field: foo
|
||||
- index:
|
||||
_index: test_1
|
||||
_type: test
|
||||
_id: 2
|
||||
- int_field: 51
|
||||
double_field: 51.0
|
||||
string_field: foo
|
||||
- index:
|
||||
_index: test_1
|
||||
_type: test
|
||||
_id: 3
|
||||
- int_field: 101
|
||||
double_field: 101.0
|
||||
string_field: foo
|
||||
- index:
|
||||
_index: test_1
|
||||
_type: test
|
||||
_id: 4
|
||||
- int_field: 151
|
||||
double_field: 151.0
|
||||
string_field: foo
|
||||
---
|
||||
"Basic test":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_int_sum:
|
||||
sum:
|
||||
field: int_field
|
||||
the_double_sum:
|
||||
sum:
|
||||
field: double_field
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 4 }
|
||||
- match: { aggregations.the_int_sum.value: 304.0 }
|
||||
- match: { aggregations.the_double_sum.value: 304.0 }
|
||||
|
||||
---
|
||||
"Only aggs test":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
size: 0
|
||||
aggs:
|
||||
the_int_sum:
|
||||
sum:
|
||||
field: int_field
|
||||
the_double_sum:
|
||||
sum:
|
||||
field: double_field
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 0 }
|
||||
- match: { aggregations.the_int_sum.value: 304.0 }
|
||||
- match: { aggregations.the_double_sum.value: 304.0 }
|
||||
|
||||
---
|
||||
"Filtered test":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
query:
|
||||
constant_score:
|
||||
filter:
|
||||
range:
|
||||
int_field:
|
||||
gte: 50
|
||||
aggs:
|
||||
the_int_sum:
|
||||
sum:
|
||||
field: int_field
|
||||
the_double_sum:
|
||||
sum:
|
||||
field: double_field
|
||||
|
||||
- match: { hits.total: 3 }
|
||||
- length: { hits.hits: 3 }
|
||||
- match: { aggregations.the_int_sum.value: 303.0 }
|
||||
- match: { aggregations.the_double_sum.value: 303.0 }
|
||||
|
||||
|
||||
---
|
||||
"Missing field with missing param":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_missing_sum:
|
||||
sum:
|
||||
field: foo
|
||||
missing: 1
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 4 }
|
||||
- match: { aggregations.the_missing_sum.value: 4.0 }
|
||||
|
||||
---
|
||||
"Missing field without missing param":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_missing_sum:
|
||||
sum:
|
||||
field: foo
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 4 }
|
||||
- match: { aggregations.the_missing_sum.value: 0.0 }
|
||||
|
||||
---
|
||||
"Metadata test":
|
||||
|
||||
- do:
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_int_sum:
|
||||
meta:
|
||||
foo: bar
|
||||
sum:
|
||||
field: int_field
|
||||
|
||||
- match: { hits.total: 4 }
|
||||
- length: { hits.hits: 4 }
|
||||
- match: { aggregations.the_int_sum.value: 304.0 }
|
||||
- match: { aggregations.the_int_sum.meta.foo: "bar" }
|
||||
|
||||
---
|
||||
"Aggregating wrong datatype test":
|
||||
|
||||
- do:
|
||||
catch: request
|
||||
search:
|
||||
body:
|
||||
aggs:
|
||||
the_string_sum:
|
||||
sum:
|
||||
field: string_field
|
||||
|
Loading…
Reference in New Issue