版本: 6.8-7.15
简而言之,当在 Elasticsearch 的 GeoShape 查询中用于构成 LinearRing 的点数少于所需的最小值时,会出现此错误。LinearRing 必须至少有 4 个点,包括起点和终点,它们必须是相同的。要解决此问题,请确保在 GeoShape 查询中至少提供 4 个点,并且第一个点和最后一个点是相同的。
日志上下文 #
日志 “invalid number of points in LinearRing (found [{}] – must be >= [{}])” 的类名是 GeoShapeType.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用:
throw new ElasticsearchParseException(error);
} int numValidPts = coerce ? 3 : 4;
if (coordinates.children.size() < numValidPts) {
throw new ElasticsearchParseException("invalid number of points in LinearRing (found [{}] - must be >= [{}])";
coordinates.children.size(); numValidPts);
}
// 仅当设置了 coerce 且环是开放状态时才闭合线性环;否则抛出解析异常
if (coordinates.children.get(0).coordinate.equals(
coordinates.children.get(coordinates.children.size() - 1).coordinate) == false) {





