From 2a0138d1d09f3fc62cdcf090d867053840ee1752 Mon Sep 17 00:00:00 2001 From: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com> Date: Thu, 7 May 2020 21:43:41 +0200 Subject: [PATCH] Elastic: Fix building of raw document queries resulting in error Unknown BaseAggregationBuilder error (#24403) * Fix building of elastic document query * Update comments --- .../plugins/datasource/elasticsearch/query_builder.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/public/app/plugins/datasource/elasticsearch/query_builder.ts b/public/app/plugins/datasource/elasticsearch/query_builder.ts index b5376531d39..42be4356561 100644 --- a/public/app/plugins/datasource/elasticsearch/query_builder.ts +++ b/public/app/plugins/datasource/elasticsearch/query_builder.ts @@ -205,14 +205,21 @@ export class ElasticQueryBuilder { this.addAdhocFilters(query, adhocFilters); - // handle document query + // If target doesn't have bucketAggs and type is not raw_document, it is invalid query. if (target.bucketAggs.length === 0) { metric = target.metrics[0]; if (!metric || metric.type !== 'raw_document') { throw { message: 'Invalid query' }; } + } - const size = (metric.settings && metric.settings.size) || 500; + /* Handle document query: + * Check if metric type is raw_document. If metric doesn't have size (or size is 0), update size to 500. + * Otherwise it will not be a valid query and error will be thrown. + */ + if (target.metrics[0].type === 'raw_document') { + metric = target.metrics[0]; + const size = (metric.settings && metric.settings.size !== 0 && metric.settings.size) || 500; return this.documentQuery(query, size); }