From 95d00d13d00ac2a2e0d7108f1c7ba71dc1cd80c5 Mon Sep 17 00:00:00 2001 From: spalger Date: Tue, 3 Apr 2018 18:30:56 -0700 Subject: [PATCH] [savedObjects/searchDsl/queryParams] test experimentalFilter arg --- .../client/lib/search_dsl/query_params.js | 2 +- .../lib/search_dsl/query_params.test.js | 56 +++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) diff --git a/src/server/saved_objects/client/lib/search_dsl/query_params.js b/src/server/saved_objects/client/lib/search_dsl/query_params.js index f04ead1dbbd23c..b73ee4114da8d9 100644 --- a/src/server/saved_objects/client/lib/search_dsl/query_params.js +++ b/src/server/saved_objects/client/lib/search_dsl/query_params.js @@ -88,7 +88,7 @@ export function getQueryParams(mappings, type, search, searchFields, experimenta } if (experimentalFilter) { - bool.must = (bool.must || []).concat( + bool.filter = (bool.filter || []).concat( convertExperimentalFilterToEsDsl(searchTypes, rootAttributes, experimentalFilter) ); } diff --git a/src/server/saved_objects/client/lib/search_dsl/query_params.test.js b/src/server/saved_objects/client/lib/search_dsl/query_params.test.js index 826b4818de1aa0..e19d288a883300 100644 --- a/src/server/saved_objects/client/lib/search_dsl/query_params.test.js +++ b/src/server/saved_objects/client/lib/search_dsl/query_params.test.js @@ -61,6 +61,30 @@ describe('searchDsl/queryParams', () => { }); }); + describe('{type,experimentalFilter}', () => { + it('includes a terms filter and filters scoped to the type', () => { + expect(getQueryParams(MAPPINGS, 'saved', undefined, undefined, { field: 'title', value: 'foo' })) + .to.eql({ + query: { + bool: { + filter: [ + { + term: { type: 'saved' } + }, + { + multi_match: { + type: 'phrase', + query: 'foo', + fields: ['saved.title'], + } + } + ] + } + } + }); + }); + }); + describe('{search}', () => { it('includes just a sqs query', () => { expect(getQueryParams(MAPPINGS, null, 'us*')) @@ -81,6 +105,38 @@ describe('searchDsl/queryParams', () => { }); }); + describe('{search,experimentalFilter}', () => { + it('includes a sqs query and filters applying to all types', () => { + expect(getQueryParams(MAPPINGS, null, 'us*', undefined, { field: 'title', value: 'foo' })) + .to.eql({ + query: { + bool: { + filter: [ + { + multi_match: { + type: 'phrase', + query: 'foo', + fields: [ + 'pending.title', + 'saved.title', + ], + } + } + ], + must: [ + { + simple_query_string: { + query: 'us*', + all_fields: true + } + } + ] + } + } + }); + }); + }); + describe('{type,search}', () => { it('includes bool with sqs query and term filter for type', () => { expect(getQueryParams(MAPPINGS, 'saved', 'y*'))