使用输入点进行Solr空间搜索并查询其中的多边形

时间:2013-10-14 20:18:56

标签: search solr polygon geospatial point

我有一些在Solr索引的多边形。是否可以用点(lat,lon)查询并查看哪个多边形内有该点?

2 个答案:

答案 0 :(得分:7)

是的,可以在这里描述:http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4 您的Solr版本必须为4或更高,您必须导入JTS jar文件,您可以从http://sourceforge.net/projects/jts-topo-suite/获取该文件 您必须定义fieldType为location_rpt

的字段
<fieldType name="location_rpt"   class="solr.SpatialRecursivePrefixTreeFieldType"
           spatialContextFactory="com.spatial4j.core.context.jts.JtsSpatialContextFactory"
           distErrPct="0.025"
           maxDistErr="0.000009"
           units="degrees"
        />
schema.xml中的

。然后你必须索引多边形,如:

<field name="geo">POLYGON((-10 30, -40 40, -10 -20, 40 20, 0 0, -10 30))</field>

但我认为你已经这样做了,因为你写道你已经将它们编入索引。

对于查询,您只需使用过滤查询fq=geo:"Intersects(10.12 50.02)",其中10.1250.02代表您的点的纬度和经度。

答案 1 :(得分:0)

我们需要外部JTS jar文件来首先索引Polygon形状。