ValuesSource type valuesSource toString is not supported for aggregation – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 7.8-7.8

Briefly, this error occurs when you’re trying to perform an aggregation on a field type that Elasticsearch doesn’t support for that specific aggregation. For instance, trying to perform a terms aggregation on a text field without keyword enabled. To resolve this, you can either change the field type to one that is supported for the aggregation you’re trying to perform, or use a different aggregation that is supported for the current field type. Alternatively, you can enable keyword on the text field if it’s not enabled.

This guide will help you check for common problems that cause the log ” ValuesSource type ” + valuesSource.toString() + “is not supported for aggregation ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: source, search, aggregations.

Log Context

Log “ValuesSource type ” + valuesSource.toString() + “is not supported for aggregation ” class name is ExtendedStatsAggregatorFactory.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :

 SearchContext searchContext;
 Aggregator parent;
 boolean collectsFromSingleBucket;
 Map metadata) throws IOException {
 if (valuesSource instanceof Numeric == false) {
 throw new AggregationExecutionException("ValuesSource type " + valuesSource.toString() + "is not supported for aggregation " +
 this.name());
 }
 return new ExtendedStatsAggregator(name; (Numeric) valuesSource; config.format(); searchContext;
 parent; sigma; metadata);
 }

 

 [ratemypost]