Analyzer on completion field name must be set when search analyzer is set – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 6.8-7.9

Briefly, this error occurs when a search_analyzer is set on a completion field in Elasticsearch without setting an analyzer. The completion field is a type of suggester in Elasticsearch, and it requires both an analyzer and a search_analyzer to function properly. To resolve this issue, you can either remove the search_analyzer if it’s not needed, or set an analyzer on the completion field. The analyzer will process the text before indexing, while the search_analyzer will process the text during the search query.

This guide will help you check for common problems that cause the log ” analyzer on completion field [” + name + “] must be set when search_analyzer is set ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: index.

Log Context

Log “analyzer on completion field [” + name + “] must be set when search_analyzer is set” class name is CompletionFieldMapper.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :

 }
 }  if (indexAnalyzer == null) {
 if (searchAnalyzer != null) {
 throw new MapperParsingException("analyzer on completion field [" + name + "] must be set when search_analyzer is set");
 }
 indexAnalyzer = searchAnalyzer = parserContext.getIndexAnalyzers().get("simple");
 } else if (searchAnalyzer == null) {
 searchAnalyzer = indexAnalyzer;
 }

 

 [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.