From 196dbf3357fda5f5f998190b9efce4c083847379 Mon Sep 17 00:00:00 2001 From: Zachary Tong Date: Mon, 20 Nov 2017 16:44:30 -0500 Subject: [PATCH] Add YAML REST tests for filters bucket agg (#27128) Related to #26220 --- .../search.aggregation/220_filters_bucket.yml | 259 ++++++++++++++++++ 1 file changed, 259 insertions(+) create mode 100644 rest-api-spec/src/main/resources/rest-api-spec/test/search.aggregation/220_filters_bucket.yml diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/search.aggregation/220_filters_bucket.yml b/rest-api-spec/src/main/resources/rest-api-spec/test/search.aggregation/220_filters_bucket.yml new file mode 100644 index 0000000000000..696a420953d3a --- /dev/null +++ b/rest-api-spec/src/main/resources/rest-api-spec/test/search.aggregation/220_filters_bucket.yml @@ -0,0 +1,259 @@ +setup: + - do: + indices.create: + index: test_1 + body: + settings: + number_of_replicas: 0 + mappings: + doc: + properties: + int_field: + type : integer + double_field: + type : double + string_field: + type: keyword + + - do: + bulk: + refresh: true + body: + - index: + _index: test_1 + _type: doc + _id: 1 + - int_field: 1 + double_field: 1.0 + string_field: foo + - index: + _index: test_1 + _type: doc + _id: 2 + - int_field: 51 + double_field: 51.0 + string_field: foo + - index: + _index: test_1 + _type: doc + _id: 3 + - int_field: 101 + double_field: 101.0 + string_field: foo + - index: + _index: test_1 + _type: doc + _id: 4 + - int_field: 151 + double_field: 151.0 + string_field: foo + +--- +"Basic test": + + - do: + search: + body: + aggs: + the_filter: + filters: + filters: + first_filter: + match: + int_field: 101 + second_filter: + match: + int_field: 151 + + - match: { hits.total: 4 } + - length: { hits.hits: 4 } + - match: { aggregations.the_filter.buckets.first_filter.doc_count: 1 } + - match: { aggregations.the_filter.buckets.second_filter.doc_count: 1 } + + - do: + search: + body: + aggs: + the_filter: + filters: + filters: + first_filter: + match: + int_field: 101 + second_filter: + match: + int_field: 151 + aggs: + the_avg: + avg: + field: int_field + + - match: { hits.total: 4 } + - length: { hits.hits: 4 } + - match: { aggregations.the_filter.buckets.first_filter.doc_count: 1 } + - match: { aggregations.the_filter.buckets.first_filter.the_avg.value: 101.0 } + - match: { aggregations.the_filter.buckets.second_filter.doc_count: 1 } + - match: { aggregations.the_filter.buckets.second_filter.the_avg.value: 151.0 } + +--- +"Anonymous filters test": + + - do: + search: + body: + aggs: + the_filter: + filters: + filters: + - match: + int_field: 101 + - match: + int_field: 151 + + - match: { hits.total: 4 } + - length: { hits.hits: 4 } + - match: { aggregations.the_filter.buckets.0.doc_count: 1 } + - match: { aggregations.the_filter.buckets.1.doc_count: 1 } + + - do: + search: + body: + aggs: + the_filter: + filters: + filters: + - match: + int_field: 101 + - match: + int_field: 151 + aggs: + the_avg: + avg: + field: int_field + + - match: { hits.total: 4 } + - length: { hits.hits: 4 } + - match: { aggregations.the_filter.buckets.0.doc_count: 1 } + - match: { aggregations.the_filter.buckets.0.the_avg.value: 101.0 } + - match: { aggregations.the_filter.buckets.1.doc_count: 1 } + - match: { aggregations.the_filter.buckets.1.the_avg.value: 151.0 } + +--- +"Only aggs test": + + - do: + search: + body: + size: 0 + aggs: + the_filter: + filters: + filters: + first_filter: + match: + int_field: 101 + second_filter: + match: + int_field: 151 + + - match: { hits.total: 4 } + - length: { hits.hits: 0 } + - match: { aggregations.the_filter.buckets.first_filter.doc_count: 1 } + - match: { aggregations.the_filter.buckets.second_filter.doc_count: 1 } + + - do: + search: + body: + aggs: + the_filter: + filters: + filters: + first_filter: + match: + int_field: 101 + second_filter: + match: + int_field: 151 + aggs: + the_avg: + avg: + field: int_field + + - match: { hits.total: 4 } + - length: { hits.hits: 4 } + - match: { aggregations.the_filter.buckets.first_filter.doc_count: 1 } + - match: { aggregations.the_filter.buckets.first_filter.the_avg.value: 101.0 } + - match: { aggregations.the_filter.buckets.second_filter.doc_count: 1 } + - match: { aggregations.the_filter.buckets.second_filter.the_avg.value: 151.0 } + +--- +"Filtered test": + + - do: + search: + body: + query: + constant_score: + filter: + range: + int_field: + gte: 110 + aggs: + the_filter: + filters: + filters: + first_filter: + match: + int_field: 101 + second_filter: + match: + int_field: 151 + aggs: + the_avg: + avg: + field: int_field + + - match: { hits.total: 1 } + - length: { hits.hits: 1 } + - match: { aggregations.the_filter.buckets.first_filter.doc_count: 0 } + - is_false: aggregations.the_filter.buckets.first_filter.the_avg.value + - match: { aggregations.the_filter.buckets.second_filter.doc_count: 1 } + - match: { aggregations.the_filter.buckets.second_filter.the_avg.value: 151.0 } + + +--- +"Metadata test": + + - do: + search: + body: + aggs: + the_filter: + meta: + foo: bar + filters: + filters: + first_filter: + match: + int_field: 101 + second_filter: + match: + int_field: 151 + + - match: { hits.total: 4 } + - length: { hits.hits: 4 } + - match: { aggregations.the_filter.buckets.first_filter.doc_count: 1 } + - match: { aggregations.the_filter.buckets.second_filter.doc_count: 1 } + - match: { aggregations.the_filter.meta.foo: "bar" } + +--- +"Bad params": + + - do: + search: + body: + aggs: + the_filter: + filters: + filters: [] +