Elasticsearch GeoShape 查询中的 CONTAINS 和 WITHIN 有什么区别?
What is the difference between CONTAINS and WITHIN on Elasticsearch GeoShape queries?
我尝试确定一个多边形(在文档中索引)是否与另一个形状(如圆形)有共同点。
Elasticsearch documentation 提供了 4 种关系:
- 相交;
- 脱节;
- 包含;
- 内。
我试图找到更多信息,尤其是 GeoJSON 方面的信息,但没有成功。
我认为第一种可以解决我的问题,但我找不到两种鞋楦之间的区别。文档很短。
谢谢。
WITHIN
将 return geo_shape
字段 在 查询中指定的几何形状内的所有文档。
=> 在这种情况下,您将在查询中指定几何形状 A
,ES 将 return 其 geo_shape
字段 B
完全位于的所有文档WITHIN 形状 A
: A contains B
CONTAINS
将 return 其 geo_shape
字段 包含 查询中指定的几何形状的所有文档。
=> 在这种情况下,ES 将 return 所有 geo_shape
字段 B
CONTAINS 几何形状 A
在您的查询中指定:B contains A
我尝试确定一个多边形(在文档中索引)是否与另一个形状(如圆形)有共同点。
Elasticsearch documentation 提供了 4 种关系:
- 相交;
- 脱节;
- 包含;
- 内。
我试图找到更多信息,尤其是 GeoJSON 方面的信息,但没有成功。
我认为第一种可以解决我的问题,但我找不到两种鞋楦之间的区别。文档很短。
谢谢。
WITHIN
将 return geo_shape
字段 在 查询中指定的几何形状内的所有文档。
=> 在这种情况下,您将在查询中指定几何形状 A
,ES 将 return 其 geo_shape
字段 B
完全位于的所有文档WITHIN 形状 A
: A contains B
CONTAINS
将 return 其 geo_shape
字段 包含 查询中指定的几何形状的所有文档。
=> 在这种情况下,ES 将 return 所有 geo_shape
字段 B
CONTAINS 几何形状 A
在您的查询中指定:B contains A