--- title: "标准化通配符查询 - 如何解决此 Elasticsearch 异常" date: 2026-01-15 lastmod: 2026-01-15 description: "当在 Elasticsearch 中使用通配符查询且查询字符串被标准化时会发生此错误。标准化可能会改变查询字符串,使其无法匹配预期的文档。" tags: ["通配符查询", "标准化", "查询异常", "分词器"] summary: " 版本: 8.3-8.9 简而言之,当在 Elasticsearch 中使用通配符查询并且查询字符串被标准化时,会发生此错误。标准化可能会导致问题,因为它可能会以某种方式改变查询字符串,使其不再匹配预期的文档。要解决此问题,您可以避免使用通配符查询,或者对正在查询的字段禁用标准化。或者,您可以对正在查询的字段使用 keyword 分词器,因为它不会标准化查询字符串。 日志上下文 日志 “normalized wildcard query” 的类名是 PlaceHolderFieldMapper.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用: throw new QueryShardException(context; fail("wildcard query")); } @Override public Query normalizedWildcardQuery(String value; @Nullable MultiTermQuery.RewriteMethod method; SearchExecutionContext context) { throw new QueryShardException(context; fail("normalized wildcard query")); } @Override public Query regexpQuery( String value; " --- > **版本:** 8.3-8.9 简而言之,当在 Elasticsearch 中使用通配符查询并且查询字符串被标准化时,会发生此错误。标准化可能会导致问题,因为它可能会以某种方式改变查询字符串,使其不再匹配预期的文档。要解决此问题,您可以避免使用通配符查询,或者对正在查询的字段禁用标准化。或者,您可以对正在查询的字段使用 keyword 分词器,因为它不会标准化查询字符串。 日志上下文 日志 "normalized wildcard query" 的类名是 [PlaceHolderFieldMapper.java.](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用: ```java throw new QueryShardException(context; fail("wildcard query")); } @Override public Query normalizedWildcardQuery(String value; @Nullable MultiTermQuery.RewriteMethod method; SearchExecutionContext context) { throw new QueryShardException(context; fail("normalized wildcard query")); } @Override public Query regexpQuery( String value; ```