查找与定义的半径相交的Solr文档

时间:2016-08-23 04:08:25

标签: apache solr lucene polygon intersection

我们正在使用Apache Solr 5.x,我们目前有一堆已定义的形状。多边形,圆形等。这些都对应于文档,每个坐标形状都有。

我想知道的是 - 是否可以提供circle,即 - (lat,lng)对以及该圈的Radius - 然后查找所有文档和那个圆圈有交集?

我尝试过各种各样的选项,最近一次是这样的:

solr_index_wkt:"IsWithin(CIRCLE((149.39999999999998 -34.92 d=0.44964028776978415))) distErrPct=0.0"

但是,这会导致以下错误:

"msg": "Unknown Shape definition [CIRCLE((149.39999999999998 -34.92 d=0.44964028776978415))]",

真的难倒这个。

更新

solr_index_wkt 是为索引文档中的多边形,圆圈和内容定义“边界框”的字段。

1 个答案:

答案 0 :(得分:0)

我遇到了一个非常类似的问题,我不停地敲击键盘,直到找到这个小宝石。我确定你可能在schema.xml文件中使用了solr.SpatialRecursivePrefixTreeFieldType。您需要将format属性设置为“LEGACY”。然后它应该在您的查询中识别Circle!

<fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
       spatialContextFactory="org.locationtech.spatial4j.context.jts.JtsSpatialContextFactory"
       autoIndex="true"
       validationRule="repairBuffer0"
       format="LEGACY"
       distErrPct="0.025"
       maxDistErr="0.001"
       distanceUnits="miles" />