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

版本: 6.8-7.15

简而言之,当为 Elasticsearch 中的地理点字段提供了无效的纬度值时,会出现此错误。纬度值应在 -90 到 90 度之间。如果值超出此范围,Elasticsearch 将抛出此错误。要解决此问题,请确保所有纬度值都在有效范围内。如果您使用脚本或应用程序生成这些值,请检查逻辑以防止无效值。此外,在索引之前验证数据以避免此类错误。

日志上下文 #

日志 “illegal latitude value [{}] for [{}]” 的类名是 GeoPolygonQueryBuilder.java.,我们从 Elasticsearch 源代码中提取了以下内容,为那些寻求深入上下文的人提供:

// validation was not available prior to 2.x; so to support bwc
 // percolation queries we only ignore_malformed on 2.x created indexes
 if (GeoValidationMethod.isIgnoreMalformed(validationMethod) == false) {
 for (GeoPoint point : shell) {
 if (GeoUtils.isValidLatitude(point.lat()) == false) {
 throw new QueryShardException(context; "illegal latitude value [{}] for [{}]"; point.lat();
 GeoPolygonQueryBuilder.NAME);
 }
 if (GeoUtils.isValidLongitude(point.lon()) == false) {
 throw new QueryShardException(context; "illegal longitude value [{}] for [{}]"; point.lon();
 GeoPolygonQueryBuilder.NAME);