版本: 6.8-7.9
简而言之,当在Elasticsearch的同一字段上同时定义’analyzer’和’search_analyzer’时,会出现此错误。Elasticsearch使用’analyzer’进行索引,使用’search_analyzer’进行搜索。如果两者都定义,可能会导致冲突。要解决此问题,您可以删除其中一个,或确保它们设置为兼容的值。如果您希望索引和搜索有不同的行为,可以考虑使用’analyzer’进行索引,使用’search_analyzer’进行搜索,但确保它们兼容以避免意外结果。
日志上下文 #
日志"analyzer and search_analyzer on field [“的类名是 TypeParsers.java。我们从Elasticsearch源代码中提取了以下内容,为那些寻求深入上下文的人提供参考:
if (indexAnalyzer == null && searchAnalyzer != null) {
throw new MapperParsingException("analyzer on field [" + name + "] must be set when search_analyzer is set");
} if (searchAnalyzer == null && searchQuoteAnalyzer != null) {
throw new MapperParsingException("analyzer and search_analyzer on field [" + name +
"] must be set when search_quote_analyzer is set");
} if (searchAnalyzer == null) {
searchAnalyzer = indexAnalyzer;





