--- title: "无法验证经纬度值 - 如何解决此 Elasticsearch 异常" date: 2026-01-18 lastmod: 2026-01-18 description: "当提供的纬度/经度值超出有效范围时出现错误,纬度应在-90到90之间,经度应在-180到180之间" tags: ["地理空间", "坐标验证", "地理查询"] summary: " 版本: 6.8-8.9 简而言之,当 Elasticsearch 中提供的纬度/经度值超出有效范围时,就会出现此错误。纬度应在 -90 到 90 之间,经度应在 -180 到 180 之间。要解决此问题,你可以在索引之前验证数据,确保其落在正确的范围内。或者,你可以使用脚本来清理索引中的现有数据。另一种解决方案是使用 “lenient” 参数来忽略格式错误的纬度/经度值,但这可能会导致搜索结果不准确。 日志上下文 # 日志 “couldn’t validate latitude/ longitude values” 的类名是 GeoDistanceQueryBuilder.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考: ); } QueryValidationException exception = checkLatLon(); if (exception != null) { throw new QueryShardException(context, "couldn't validate latitude/ longitude values", exception); } if (GeoValidationMethod.isCoerce(validationMethod)) { GeoUtils.normalizePoint(center, true, true); } " --- > **版本:** 6.8-8.9 简而言之,当 Elasticsearch 中提供的纬度/经度值超出有效范围时,就会出现此错误。纬度应在 -90 到 90 之间,经度应在 -180 到 180 之间。要解决此问题,你可以在索引之前验证数据,确保其落在正确的范围内。或者,你可以使用脚本来清理索引中的现有数据。另一种解决方案是使用 "lenient" 参数来忽略格式错误的纬度/经度值,但这可能会导致搜索结果不准确。 日志上下文 ----------- 日志 "couldn't validate latitude/ longitude values" 的类名是 [GeoDistanceQueryBuilder.java](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考: ```java ); } QueryValidationException exception = checkLatLon(); if (exception != null) { throw new QueryShardException(context, "couldn't validate latitude/ longitude values", exception); } if (GeoValidationMethod.isCoerce(validationMethod)) { GeoUtils.normalizePoint(center, true, true); } ```