Briefly, this error occurs when the latitude value provided in a geolocation query in Elasticsearch is not a number. Elasticsearch expects latitude and longitude values to be numeric for geospatial data. To resolve this issue, ensure that the latitude value is a numeric type. If the value is being sourced from a document, check the document for errors. If the value is being input manually, ensure it is a valid number. Also, check the mapping of your index to ensure the field is correctly mapped as a geo_point.
This guide will help you check for common problems that cause the log ” latitude must be a number ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: .
Log Context
Log “latitude must be a number” class name is GeoPoint.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :
final double lat; final double lon; try { lat = Double.parseDouble(vals[0].trim()); } catch (NumberFormatException ex) { 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");