--- title: "百分比应在0-100之间,得到——如何解决此Elasticsearch异常" date: 2026-01-28 lastmod: 2026-01-28 description: "当Elasticsearch操作中提供的百分比值超出有效范围0-100时会发生此错误。本文介绍如何解决此异常。" tags: ["百分比", "异常处理", "数据验证", "内存配置"] summary: " 版本: 6.8-8.9 简而言之,当Elasticsearch操作中提供的百分比值超出有效范围0-100时,会发生此错误。这可能是由于编程错误或用户输入不正确导致的。要解决此问题,您应在Elasticsearch操作中使用百分比值之前对其进行验证。确保百分比值在可接受的范围内。如果错误仍然存在,请检查代码中是否存在任何百分比值的计算错误或解释错误。 日志上下文 # 日志"percentage should be in [0-100]; got [{}]“的类名是 MemorySizeValue.java。 我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人使用: if (sValue != null && sValue.endsWith("%")) { final String percentAsString = sValue.substring(0, sValue.length() - 1); try { final double percent = Double.parseDouble(percentAsString); if (percent < 0 || percent > 100) { throw new ElasticsearchParseException("percentage should be in [0-100]; got [{}]", percentAsString); } return ByteSizeValue.ofBytes((long) ((percent / 100) * JvmInfo.jvmInfo().getMem().getHeapMax().getBytes())); } catch (NumberFormatException e) { throw new ElasticsearchParseException("failed to parse [{}] as a double", e, percentAsString); } } " --- > **版本:** 6.8-8.9 简而言之,当Elasticsearch操作中提供的百分比值超出有效范围0-100时,会发生此错误。这可能是由于编程错误或用户输入不正确导致的。要解决此问题,您应在Elasticsearch操作中使用百分比值之前对其进行验证。确保百分比值在可接受的范围内。如果错误仍然存在,请检查代码中是否存在任何百分比值的计算错误或解释错误。 日志上下文 ----------- 日志"percentage should be in [0-100]; got [{}]"的类名是[MemorySizeValue.java。](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人使用: ```java if (sValue != null && sValue.endsWith("%")) { final String percentAsString = sValue.substring(0, sValue.length() - 1); try { final double percent = Double.parseDouble(percentAsString); if (percent < 0 || percent > 100) { throw new ElasticsearchParseException("percentage should be in [0-100]; got [{}]", percentAsString); } return ByteSizeValue.ofBytes((long) ((percent / 100) * JvmInfo.jvmInfo().getMem().getHeapMax().getBytes())); } catch (NumberFormatException e) { throw new ElasticsearchParseException("failed to parse [{}] as a double", e, percentAsString); } } ```