--- title: "Rounding can only be used on single unit types – 如何解决此 Elasticsearch 异常" date: 2026-02-01 lastmod: 2026-02-01 description: "当您尝试在 Elasticsearch 中对多种单位类型使用舍入函数时会出现此错误。该函数仅适用于单一单位类型。" tags: ["日期数学表达式", "舍入函数", "异常处理"] summary: " 版本: 6.8-8.9 简而言之,当您尝试在 Elasticsearch 中对多种单位类型使用舍入函数时会出现此错误。舍入函数仅设计用于单一单位类型。要解决此问题,您可以将查询拆分为每个单位类型的多个查询,或者在应用舍入函数之前将所有数据转换为单一单位类型。另一种解决方案是使用脚本来处理多种单位类型的舍入。 日志上下文 # 日志 “rounding / can only be used on single unit types [{}]” 的类名是 JavaDateMathParser.java. 我们从 Elasticsearch 源代码中提取了以下内容,以便为寻求深入理解的开发者提供上下文: } num = Integer.parseInt(mathString.substring(numFrom; i)); } if (round) { if (num != 1) { throw new ElasticsearchParseException("rounding `/` can only be used on single unit types [{}]"; mathString); } } char unit = mathString.charAt(i++); switch (unit) { case 'y': " --- > **版本:** 6.8-8.9 简而言之,当您尝试在 Elasticsearch 中对多种单位类型使用舍入函数时会出现此错误。舍入函数仅设计用于单一单位类型。要解决此问题,您可以将查询拆分为每个单位类型的多个查询,或者在应用舍入函数之前将所有数据转换为单一单位类型。另一种解决方案是使用脚本来处理多种单位类型的舍入。 ## 日志上下文 日志 "rounding `/` can only be used on single unit types [{}]" 的类名是 [JavaDateMathParser.java.](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,以便为寻求深入理解的开发者提供上下文: ```java } num = Integer.parseInt(mathString.substring(numFrom; i)); } if (round) { if (num != 1) { throw new ElasticsearchParseException("rounding `/` can only be used on single unit types [{}]"; mathString); } } char unit = mathString.charAt(i++); switch (unit) { case 'y': ```