diff --git a/public/app/plugins/datasource/elasticsearch/components/QueryEditor/ElasticsearchQueryContext.tsx b/public/app/plugins/datasource/elasticsearch/components/QueryEditor/ElasticsearchQueryContext.tsx index dda0b664f53..6c41d99a18f 100644 --- a/public/app/plugins/datasource/elasticsearch/components/QueryEditor/ElasticsearchQueryContext.tsx +++ b/public/app/plugins/datasource/elasticsearch/components/QueryEditor/ElasticsearchQueryContext.tsx @@ -31,9 +31,11 @@ export const ElasticsearchProvider = ({ range, }: PropsWithChildren) => { const onStateChange = useCallback( - (query: ElasticsearchQuery) => { + (query: ElasticsearchQuery, prevQuery: ElasticsearchQuery) => { onChange(query); - onRunQuery(); + if (query.query === prevQuery.query || prevQuery.query === undefined) { + onRunQuery(); + } }, [onChange, onRunQuery] ); @@ -47,7 +49,7 @@ export const ElasticsearchProvider = ({ const dispatch = useStatelessReducer( // timeField is part of the query model, but its value is always set to be the one from datasource settings. - (newState) => onStateChange({ ...query, ...newState, timeField: datasource.timeField }), + (newState) => onStateChange({ ...query, ...newState, timeField: datasource.timeField }, query), query, reducer );