📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 6.8-8.9

简而言之,当 Elasticsearch 中提供的纬度/经度值超出有效范围时,就会出现此错误。纬度应在 -90 到 90 之间,经度应在 -180 到 180 之间。要解决此问题,你可以在索引之前验证数据,确保其落在正确的范围内。或者,你可以使用脚本来清理索引中的现有数据。另一种解决方案是使用 “lenient” 参数来忽略格式错误的纬度/经度值,但这可能会导致搜索结果不准确。

日志上下文 #

日志 “couldn’t validate latitude/ longitude values” 的类名是 GeoDistanceQueryBuilder.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:

);
 }  QueryValidationException exception = checkLatLon();
 if (exception != null) {
 throw new QueryShardException(context, "couldn't validate latitude/ longitude values", exception);
 }  if (GeoValidationMethod.isCoerce(validationMethod)) {
 GeoUtils.normalizePoint(center, true, true);
 }