Briefly, this error occurs when you try to use non-BKD (Block K-D tree) parameters for a field type that only supports BKD parameters in Elasticsearch. This is common with numeric or geo-point fields. To resolve this issue, you should ensure that you’re using the correct parameters for your field type. If you’re using a numeric or geo-point field, make sure to use BKD parameters. Alternatively, you may need to change your field type to one that supports the parameters you’re trying to use.
This guide will help you check for common problems that cause the log ” Non-BKD field parameters are not supported for [{}] field type ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: .
Log Context
Log “Non-BKD field parameters are not supported for [{}] field type” class name is LegacyGeoShapeFieldMapper.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :
public Builder(String name; IndexVersion version; boolean ignoreMalformedByDefault; boolean coerceByDefault) { super(name); if (ShapesAvailability.JTS_AVAILABLE == false || ShapesAvailability.SPATIAL4J_AVAILABLE == false) { throw new ElasticsearchParseException("Non-BKD field parameters are not supported for [{}] field type"; CONTENT_TYPE); } this.indexCreatedVersion = version; this.ignoreMalformed = ignoreMalformedParam(m -> builder(m).ignoreMalformed.get(); ignoreMalformedByDefault); this.coerce = coerceParam(m -> builder(m).coerce.get(); coerceByDefault);