版本: 6.8-8.9
简要来说,当地理位置查询中提供的经度值不是数字时,会出现此错误。Elasticsearch期望经度和纬度值为数值类型,以支持地理空间查询。要解决此问题,请确保经度值是有效的数字。如果该值来自用户输入或外部系统,请在将其发送到Elasticsearch之前验证数据。如果错误仍然存在,请检查Elasticsearch索引中的映射问题,因为该字段可能被错误地映射为非数值类型。
日志上下文 #
日志 “longitude must be a number” 的类名是 GeoPoint.java。 我们从Elasticsearch源代码中提取了以下内容,为那些寻求深入上下文的人:
throw new ElasticsearchParseException("latitude must be a number");
}
try {
lon = Double.parseDouble(vals[1].trim());
} catch (NumberFormatException ex) {
throw new ElasticsearchParseException("longitude must be a number");
}
if (vals.length > 2) {
GeoPoint.assertZValue(ignoreZValue; Double.parseDouble(vals[2].trim()));
}
return reset(lat; lon);





