Cannot define multifields on a field with a script – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 7.13-8.9

Briefly, this error occurs when you try to define multifields on a scripted field in Elasticsearch. Scripted fields are computed at query time and do not support multifields, which are used to index a single field in different ways. To resolve this issue, you can either remove the multifield definition from the scripted field or create a separate non-scripted field for the multifield definition. Alternatively, you can modify your script to output data in a format that doesn’t require multifields.

This guide will help you check for common problems that cause the log ” Cannot define multifields on a field with a script ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: index.

Log Context

Log “Cannot define multifields on a field with a script” class name is FieldMapper.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :

 scriptParam.addValidator(s -> {
 if (s != null && indexParam.get() == false && docValuesParam.get() == false) {
 throw new MapperParsingException("Cannot define script on field with index:false and doc_values:false");
 }
 if (s != null && multiFieldsBuilder.hasMultiFields()) {
 throw new MapperParsingException("Cannot define multifields on a field with a script");
 }
 if (s != null && copyTo.hasValues()) {
 throw new MapperParsingException("Cannot define copy_to parameter on a field with a script");
 }
 });

 

 [ratemypost]

Opster
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.