--- title: "Sampler 聚合无法应用于字段 – 如何解决此 Elasticsearch 异常" date: 2026-02-14 lastmod: 2026-02-14 description: "Elasticsearch 报错 Sampler aggregation cannot be applied to field,这是因为尝试对不支持 sampler 聚合的字段类型应用该聚合。本文介绍如何解决此问题。" tags: ["聚合", "字段类型", "异常处理"] summary: " 版本: 6.8-7.7 简而言之,当你尝试对不支持 sampler 聚合的字段类型应用该聚合时,就会发生此错误。Sampler 聚合用于选择文档子集,但并非所有字段类型都兼容。要解决此问题,你可以将字段类型更改为支持 sampler 聚合的类型,或者使用与当前字段类型兼容的其他类型的聚合。或者,你可以创建一个具有兼容类型的新字段,并将值从原始字段复制过来。 日志上下文 # 日志 “Sampler aggregation cannot be applied to field [” 的类名是 DiversifiedAggregatorFactory.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考: } return execution.create(name; factories; shardSize; maxDocsPerValue; valuesSource; searchContext; parent; pipelineAggregators; metaData); } throw new AggregationExecutionException("Sampler aggregation cannot be applied to field [" + config.fieldContext().field() + "]. It can only be applied to numeric or string fields."); } @Override protected Aggregator createUnmapped(SearchContext searchContext; " --- > **版本:** 6.8-7.7 简而言之,当你尝试对不支持 sampler 聚合的字段类型应用该聚合时,就会发生此错误。Sampler 聚合用于选择文档子集,但并非所有字段类型都兼容。要解决此问题,你可以将字段类型更改为支持 sampler 聚合的类型,或者使用与当前字段类型兼容的其他类型的聚合。或者,你可以创建一个具有兼容类型的新字段,并将值从原始字段复制过来。 日志上下文 ----------- 日志 "Sampler aggregation cannot be applied to field [" 的类名是 [DiversifiedAggregatorFactory.java.](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考: ```java } return execution.create(name; factories; shardSize; maxDocsPerValue; valuesSource; searchContext; parent; pipelineAggregators; metaData); } throw new AggregationExecutionException("Sampler aggregation cannot be applied to field [" + config.fieldContext().field() + "]. It can only be applied to numeric or string fields."); } @Override protected Aggregator createUnmapped(SearchContext searchContext; ```