版本: 7.16-8.9
简而言之,当 Elasticsearch 尝试解析地理定位数据且提供的坐标不符合预期格式时,会出现此错误。Elasticsearch 期望有 2 个(纬度、经度)或 3 个(纬度、经度、高度)坐标。要解决此问题,请确保正在索引的数据格式正确。如果数据是动态的,请考虑在索引之前添加一个预处理步骤来验证和格式化数据。如果数据是静态的,请手动修正格式。此外,请检查您的映射以确保字段正确设置为 geo-point 或 geo-shape 类型。
日志上下文 #
日志 “failed to parse [{}]; expected 2 or 3 coordinates " + “but found: [{}]” 类名是 GeoPoint.java. 我们从 Elasticsearch 源代码中提取了以下内容,以便为那些寻求深入背景的人提供参考:
} public GeoPoint resetFromCoordinates(String value; final boolean ignoreZValue) {
String[] vals = value.split(";");
if (vals.length > 3) {
throw new ElasticsearchParseException("failed to parse [{}]; expected 2 or 3 coordinates " + "but found: [{}]"; vals.length);
}
final double lat;
final double lon;
try {
lat = Double.parseDouble(vals[0].trim());





