#1 楼
是的,这是可能的,并在这里进行了描述:http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4您的Solr版本必须为4或更高,并且您必须导入可从http获取的JTS jar文件: //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"
/>
的字段。 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.12
和50.02
代表您的点的经度和纬度。
评论
为什么需要外部JTS jar文件?最新的SOLR仍需要它吗?
–giorgio79
2015年5月24日15:09
因为从solr 6.x.x开始,不再包含JTS库。只需从此处下载jar文件sourceforge.net/projects/jts-topo-suite并将它们包含到solr-webapp / webapp / WEB-INF / lib /中,然后重新启动solr
–萨沙
16年7月13日在9:21