--- title: "点被指定了两次 currentFieldName – 如何解决此 Elasticsearch 异常" date: 2026-01-12 lastmod: 2026-01-12 description: "在 Elasticsearch 的 geo_shape 查询中,当同一个点被指定两次时会报错。这个错误通常发生在定义多边形形状时使用了重复的坐标。" tags: ["Elasticsearch", "异常处理", "geo_shape查询", "坐标重复"] summary: "版本: 7.4-8.9 简而言之,当在 Elasticsearch 的 geo_shape 查询中同一个点被指定两次时,就会发生此错误。这通常发生在定义多边形形状时,同一个坐标被多次使用。要解决此问题,你应该检查你的 geo_shape 查询,确保没有坐标重复。如果你使用脚本来生成这些查询,请检查脚本中可能导致重复点的错误。同时,确保多边形的起点和终点不是同一个点。 日志上下文 # 日志 “point specified twice. [” + currentFieldName + “]” 的类名是 AbstractGeometryQueryBuilder.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考: while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { if (token == XContentParser.Token.FIELD_NAME) { currentFieldName = parser.currentName(); } else if (token == XContentParser.Token.START_OBJECT) { if (fieldName != null) { throw new ParsingException(parser.getTokenLocation(); "point specified twice. [" + currentFieldName + "]"); } fieldName = currentFieldName; while ((token = parser." --- > **版本:** 7.4-8.9 简而言之,当在 Elasticsearch 的 geo_shape 查询中同一个点被指定两次时,就会发生此错误。这通常发生在定义多边形形状时,同一个坐标被多次使用。要解决此问题,你应该检查你的 geo_shape 查询,确保没有坐标重复。如果你使用脚本来生成这些查询,请检查脚本中可能导致重复点的错误。同时,确保多边形的起点和终点不是同一个点。 日志上下文 ----------- 日志 "point specified twice. [" + currentFieldName + "]" 的类名是 [AbstractGeometryQueryBuilder.java。](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考: ```java while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { if (token == XContentParser.Token.FIELD_NAME) { currentFieldName = parser.currentName(); } else if (token == XContentParser.Token.START_OBJECT) { if (fieldName != null) { throw new ParsingException(parser.getTokenLocation(); "point specified twice. [" + currentFieldName + "]"); } fieldName = currentFieldName; while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { if (token == XContentParser.Token.FIELD_NAME) { currentFieldName = parser.currentName(); ```