--- title: "分析器名称包含过滤器 – 如何解决此 Elasticsearch 异常" date: 2026-01-11 lastmod: 2026-01-11 description: "当 Elasticsearch 分析器配置了未识别或未定义的过滤器时会出现此错误。通常是由于过滤器名称拼写错误或过滤器未安装导致。本文介绍了如何解决此问题。" tags: ["Elasticsearch", "分析器", "过滤器", "映射异常", "索引配置"] summary: "版本: 7.2-7.15 简要来说,当 Elasticsearch 分析器配置了未被识别或未定义的过滤器时,就会出现此错误。这可能是由于过滤器名称拼写错误或过滤器未安装造成的。要解决此问题,您可以检查分析器配置中过滤器名称的拼写。如果拼写正确,请确保过滤器已正确安装在您的 Elasticsearch 实例中并且可用。如果过滤器是自定义的,请确保它们在 Elasticsearch 配置中已正确定义和注册。 日志上下文 # 日志 “analyzer [” + name + “] contains filters " 类名是 NamedAnalyzer.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考: AnalysisMode filterMode = tokenFilter.getAnalysisMode(); if (filterMode != AnalysisMode.ALL && filterMode != mode) { offendingFilters.add(tokenFilter.name()); } } throw new MapperException("analyzer [" + name + "] contains filters " + offendingFilters + " that are not allowed to run in " + mode.getReadableName() + " mode." --- > **版本:** 7.2-7.15 简要来说,当 Elasticsearch 分析器配置了未被识别或未定义的过滤器时,就会出现此错误。这可能是由于过滤器名称拼写错误或过滤器未安装造成的。要解决此问题,您可以检查分析器配置中过滤器名称的拼写。如果拼写正确,请确保过滤器已正确安装在您的 Elasticsearch 实例中并且可用。如果过滤器是自定义的,请确保它们在 Elasticsearch 配置中已正确定义和注册。 ## 日志上下文 日志 "analyzer [" + name + "] contains filters " 类名是 [NamedAnalyzer.java](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考: ```java AnalysisMode filterMode = tokenFilter.getAnalysisMode(); if (filterMode != AnalysisMode.ALL && filterMode != mode) { offendingFilters.add(tokenFilter.name()); } } throw new MapperException("analyzer [" + name + "] contains filters " + offendingFilters + " that are not allowed to run in " + mode.getReadableName() + " mode."); } else { throw new MapperException( "analyzer [" + name + "] contains components that are not allowed to run in " + mode.getReadableName() + " mode."); } ```