--- title: "LinearRing 中的点数无效 - 必须大于等于 - 如何解决此 Elasticsearch 异常" date: 2026-01-01 lastmod: 2026-01-01 description: "当 Elasticsearch 中 GeoShape 查询的 LinearRing 点数少于所需最小值时,会出现此错误。LinearRing 至少需要 4 个点,且起点和终点必须相同。" tags: ["Elasticsearch", "GeoShape", "异常", "LinearRing", "地理形状查询"] summary: "版本: 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." --- > **版本:** 6.8-7.15 简而言之,当在 Elasticsearch 的 GeoShape 查询中用于构成 LinearRing 的点数少于所需的最小值时,会出现此错误。LinearRing 必须至少有 4 个点,包括起点和终点,它们必须是相同的。要解决此问题,请确保在 GeoShape 查询中至少提供 4 个点,并且第一个点和最后一个点是相同的。 日志上下文 ----------- 日志 "invalid number of points in LinearRing (found [{}] – must be >= [{}])" 的类名是 [GeoShapeType.java。](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用: ```java 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) { ```