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

版本: 6.8-6.8

简要来说,当 Elasticsearch 遇到具有未知或不支持的形状类型的字段时,会发生此错误。这通常发生在使用 geo_shape 字段时,文档中定义的形状类型与任何已识别的形状不匹配。要解决此问题,您可以将文档中的形状类型更改为已识别的类型(如 ‘point’、‘linestring’、‘polygon’ 等),或者如果该字段不是必需的,可以将其删除。此外,请确保形状数据格式正确并符合 geoJSON 标准。

日志上下文 #

日志 “Field [” + fieldName + “] found and unknown shape” 的类名是 GeoShapeQueryBuilder.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:

}
 return LatLonShape.newBoxQuery(fieldName; relation.getLuceneRelation(); pt[1]; pt[1]; pt[0]; pt[0]);
 } else if (queryShape instanceof Object[]) {
 geoQuery = createGeometryCollectionQuery(context; (Object[]) queryShape);
 } else {
 throw new QueryShardException(context; "Field [" + fieldName + "] found and unknown shape");
 }
 return geoQuery;
 }  private Query createGeometryCollectionQuery(QueryShardContext context; Object... shapes) {