--- title: "未指定半径 - 如何解决此 Elasticsearch 异常" date: 2026-01-03 lastmod: 2026-01-03 description: "在 Elasticsearch 中执行地理空间查询时未指定半径参数导致的异常及解决方案" tags: ["地理空间查询", "半径参数", "异常处理"] summary: " 版本: 7.2-8.9 简而言之,当在 Elasticsearch 的地理空间查询中未提供半径参数时,会出现此错误。Elasticsearch 执行地理空间查询需要指定半径。要解决此问题,你应该在查询中指定半径。可以通过在 “geo_distance” 过滤器或查询中添加 “distance” 参数来实现。距离值可以是字符串,如 “12km”,也可以是代表米数的数字。此外,确保你查询的字段已正确映射为 geo_point 或 geo_shape 数据类型。 日志上下文 # 日志 “radius is not specified” 的类名是 GeoJson.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考: } return switch (shapeType) { case CIRCLE -> { if (radius == null) { throw new ElasticsearchParseException("radius is not specified"); } verifyNulls(type; geometries; orientation; null); Point point = coordinates.asPoint(); yield new Circle(point.getX(); point.getY(); point.getZ(); radius.convert(DistanceUnit.METERS).value); } } " --- > **版本:** 7.2-8.9 简而言之,当在 Elasticsearch 的地理空间查询中未提供半径参数时,会出现此错误。Elasticsearch 执行地理空间查询需要指定半径。要解决此问题,你应该在查询中指定半径。可以通过在 "geo_distance" 过滤器或查询中添加 "distance" 参数来实现。距离值可以是字符串,如 "12km",也可以是代表米数的数字。此外,确保你查询的字段已正确映射为 geo_point 或 geo_shape 数据类型。 日志上下文 ----------- 日志 "radius is not specified" 的类名是 [GeoJson.java。](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考: ```java } return switch (shapeType) { case CIRCLE -> { if (radius == null) { throw new ElasticsearchParseException("radius is not specified"); } verifyNulls(type; geometries; orientation; null); Point point = coordinates.asPoint(); yield new Circle(point.getX(); point.getY(); point.getZ(); radius.convert(DistanceUnit.METERS).value); } } ```