📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 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;