--- title: "解析坐标发现 Z 值异常 – 如何解决此 Elasticsearch 异常" date: 2026-01-03 lastmod: 2026-01-03 description: "Elasticsearch 在解析地理位置坐标时遇到 Z 值(海拔高度)时会抛出异常。" tags: ["坐标解析", "地理位置", "映射配置"] summary: " 版本: 6.8-7.1 简要来说,当 Elasticsearch 在解析地理位置坐标(geo-points)时遇到 Z 值,就会发生此错误。Elasticsearch 仅支持 2D 地理位置(纬度和经度),而 Z 值代表第三个维度(海拔高度),这是不被支持的。要解决此问题,您可以采取以下几种方法:在索引之前从地理位置数据中删除 Z 值,或者使用脚本在索引过程中剥离 Z 值。此外,您还可以使用映射配置来忽略格式错误的地理位置点。 日志上下文 # 日志 “Exception parsing coordinates: found Z value [{}] but [{}]” 的类名是 GeoPoint.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解上下文的人参考: return builder.latlon(lat, lon); } public static double assertZValue(final boolean ignoreZValue, double zValue) { if (ignoreZValue == false) { throw new ElasticsearchParseException("Exception parsing coordinates: found Z value [{}] but [{}] " + "parameter is [{}]", zValue, IGNORE_Z_VALUE, ignoreZValue); } return zValue; } } " --- > **版本:** 6.8-7.1 简要来说,当 Elasticsearch 在解析地理位置坐标(geo-points)时遇到 Z 值,就会发生此错误。Elasticsearch 仅支持 2D 地理位置(纬度和经度),而 Z 值代表第三个维度(海拔高度),这是不被支持的。要解决此问题,您可以采取以下几种方法:在索引之前从地理位置数据中删除 Z 值,或者使用脚本在索引过程中剥离 Z 值。此外,您还可以使用映射配置来忽略格式错误的地理位置点。 日志上下文 ----------- 日志 “Exception parsing coordinates: found Z value [{}] but [{}]” 的类名是 [GeoPoint.java](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解上下文的人参考: ```java return builder.latlon(lat, lon); } public static double assertZValue(final boolean ignoreZValue, double zValue) { if (ignoreZValue == false) { throw new ElasticsearchParseException("Exception parsing coordinates: found Z value [{}] but [{}] " + "parameter is [{}]", zValue, IGNORE_Z_VALUE, ignoreZValue); } return zValue; } } ```