Elasticsearch GeoShape 查询中的 CONTAINS 和 WITHIN 之间有什么区别?

Geo*_*rey 3 geojson elasticsearch elasticsearch-geo-shape

我尝试确定一个多边形(在文档中索引)是否与另一个形状(如圆形)有共同点。

Elasticsearch文档提供了 4 种类型的关系:

  • 相交;
  • 不相交;
  • 包含;
  • 之内。

我试图从 GeoJSON 方面寻找更多信息,但没有成功。

我认为第一种类型可以回答我的问题,但我找不到两种类型之间的区别。文档很短。

谢谢。

Val*_*Val 5

WITHIN将返回其geo_shape字段在查询中指定的几何形状的所有文档。

=>在这种情况下,您将指定的几何形状,A在您的查询,ES将返回其所有文档geo_shapeB完全位于WITHIN那个形状AA contains B

CONTAINS将返回其geo_shape字段包含查询中指定的几何形状的所有文档。

=>在这种情况下,ES将返回其所有文档geo_shapeB CONTAINS几何形状A在查询中指定的:B contains A

  • 区别在于`WITHIN`表示`A包含B`,`CONTAINS`表示`B包含A`,其中`A`是查询中的形状,而`B`是文档中的形状。 (7认同)
  • 我不明白语法差异。对我来说,两者都意味着某种东西的内部,英语不是我的主要语言。 (2认同)
  • 我也可以用法语解释;) (2认同)