我们正在使用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 是为索引文档中的多边形,圆圈和内容定义“边界框”的字段。答案 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" />