如何使用solr找到部分包含在较大多边形中的多边形?

时间:2018-02-18 17:24:50

标签: solr lucene spatial-query

我有一个多边形结构,用于描述国家,州,城市和城市地区。

如果我选择一个区域,我会使用该多边形来获取该区域的父母:

“布鲁克林”:“纽约市”,“纽约州”,“美国”

我为此使用“Contains()”,并且大多数时候它都很好用。但是,在某些时候,城市多边形有点偏离父母,它不再返回(这应该是它应该如何)。我的问题是,我该如何归还这些物品?

3 个答案:

答案 0 :(得分:0)

您是否考虑使用关系图来组织区域/多边形? 这样您就不会受物理表示/位置/表面的约束。

美国 - >纽约州 - >纽约市 - >布鲁克林

美国 - >纽约州 - >纽约市 - >皇后

答案 1 :(得分:0)

我认为您可以将Intersects()用于该用例。它应与Contains()一起记录,因此请参考您的Solr精确版本文档,您应该很高兴。

答案 2 :(得分:0)

父级是一个多边形,其中(子级-父级)的面积等于0,(父级-子级)的面积等于(父级的面积-子级的面积),您可以根据与这些等距的偏差来对多边形进行排名(或其他类似的形式)并允许用户选择阈值。