【问题标题】:Searching in Solr for boundaries which overlap 50% of the area of the given boundary在 Solr 中搜索与给定边界面积的 50% 重叠的边界
【发布时间】:2016-03-08 08:01:31
【问题描述】:

我们获得了 Solr 中索引的所有文档的边界数据(多边形的纬度、经度点)。我正在接收其中一个边界作为输入,并且我想检索其边界完全在给定边界内或与给定边界内超过 50% 的区域重叠的所有文档。 换句话说,边界与给定边界的交叉面积大于 50%。 (100%表示完全在里面)

边界采用 WKT(知名文本)格式,例如 POLYGON (((40 40, 20 45, 45 30, 40 40)))

【问题讨论】:

    标签: solr lucene geospatial solr4


    【解决方案1】:

    所以基本上你已经索引了多边形数据,并且你有一个查询多边形。并且您希望找到至少 50% 被查询多边形覆盖的所有索引多边形。有道理。

    我将从使用典型的 intersects 过滤器开始(您可以在 Solr 参考指南中查看如何操作)并使用 RptWithGeometrySpatialField 作为字段类型。这将为您提供所有具有任何重叠的索引文档(多边形)。

    但 50% 的重叠要求很棘手;这将非常缓慢。您可以编写一个 Solr PostFilter,从位于该空间字段下的同一个 Solr 缓存中检索索引形状,然后使用 JTS 操作来确定重叠。副手,我认为这是通过裁剪完成的,然后你可以计算面积。但是在每个搜索结果上这样做会非常昂贵(很抱歉把它打断给你)。不过,如果它不是典型的搜索应用程序,也许您的要求会允许它。

    作为不需要自定义编码的糟糕替代品,请考虑 BBoxField 实际上已经这样做了,但对于矩形。它根据重叠率进行评分,您可以使用 Solr 的 {!frange} 过滤评分。

    【讨论】:

      猜你喜欢
      • 2014-04-30
      • 1970-01-01
      • 2016-07-31
      • 2019-09-05
      • 1970-01-01
      • 2018-06-24
      • 2021-09-03
      • 1970-01-01
      相关资源
      最近更新 更多