--- title: "通配符间隔查询" date: 2026-02-01 lastmod: 2026-02-01 description: "Elasticsearch在间隔查询中使用通配符导致的错误及解决方案" tags: ["Elasticsearch", "间隔查询", "通配符", "查询类型"] summary: " 版本: 8.3-8.9 简而言之,当在Elasticsearch的间隔查询中使用通配符时,就会出现此错误。Elasticsearch不支持在间隔查询中使用通配符。要解决此问题,您可以使用match或term查询代替间隔查询。或者,您可以在regexp查询中使用正则表达式(regex)来实现类似的功能。另一个选项是使用通配符查询,它支持通配符,但可能会影响性能。 日志上下文 # 日志"wildcard intervals query"的类名是 PlaceHolderFieldMapper.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人使用: throw new QueryShardException(context, fail("fuzzy intervals query")); } @Override public IntervalsSource wildcardIntervals(BytesRef pattern, SearchExecutionContext context) { throw new QueryShardException(context, fail("wildcard intervals query")); } @Override public IndexFieldData.Builder fielddataBuilder(FieldDataContext fieldDataContext) { throw new IllegalArgumentException(fail("aggregation or sorts")); " --- > **版本:** 8.3-8.9 简而言之,当在Elasticsearch的间隔查询中使用通配符时,就会出现此错误。Elasticsearch不支持在间隔查询中使用通配符。要解决此问题,您可以使用match或term查询代替间隔查询。或者,您可以在regexp查询中使用正则表达式(regex)来实现类似的功能。另一个选项是使用通配符查询,它支持通配符,但可能会影响性能。 ## 日志上下文 日志"wildcard intervals query"的类名是[PlaceHolderFieldMapper.java](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人使用: ```java throw new QueryShardException(context, fail("fuzzy intervals query")); } @Override public IntervalsSource wildcardIntervals(BytesRef pattern, SearchExecutionContext context) { throw new QueryShardException(context, fail("wildcard intervals query")); } @Override public IndexFieldData.Builder fielddataBuilder(FieldDataContext fieldDataContext) { throw new IllegalArgumentException(fail("aggregation or sorts")); ```