版本: 6.8-8.9
简而言之,当提供给 Elasticsearch 的地理坐标未采用正确的数字格式时,就会发生此错误。Elasticsearch 要求地理坐标必须是数字(纬度和经度)。如果提供字符串或任何其他数据类型,它将抛出此错误。要解决此问题,请确保地理坐标采用正确的数字格式。此外,检查数据源以确保其提供正确的数据类型。如果使用脚本输入数据,请验证其在将数据发送到 Elasticsearch 之前是否正确地将字符串转换为数字。
日志上下文 #
日志"geo coordinates must be numbers"的类名是 GeoJson.java。 我们从 Elasticsearch 源代码中提取了以下内容,以供寻求深入上下文的人员参考:
* Parse a single set of 2 or 3 coordinates
*/
private static Point parseCoordinate(XContentParser parser) throws IOException {
// Add support for coerce here
if (parser.currentToken() != XContentParser.Token.VALUE_NUMBER) {
throw new ElasticsearchParseException("geo coordinates must be numbers");
}
double lon = parser.doubleValue();
if (parser.nextToken() != XContentParser.Token.VALUE_NUMBER) {
throw new ElasticsearchParseException("geo coordinates must be numbers");
}





