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

Search 使用输入点进行Solr空间搜索并查询其中的多边形,search,solr,polygon,geospatial,point,Search,Solr,Polygon,Geospatial,Point,我在Solr中索引了一些多边形。可以用一个点(纬度、经度)进行查询并查看哪个多边形的内部有该点吗?是的,可以在此处进行描述: 您的Solr版本必须为4或更高版本,并且必须导入可以从中获取的JTS jar文件 必须使用字段类型location\u rpt定义字段 <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType" spatialContextFactory="

我在Solr中索引了一些多边形。可以用一个点(纬度、经度)进行查询并查看哪个多边形的内部有该点吗?

是的,可以在此处进行描述: 您的Solr版本必须为4或更高版本,并且必须导入可以从中获取的JTS jar文件 必须使用字段类型location\u 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>
多边形((-1030,-4040,-10-20,4020,020,-1030))
但我认为你已经这样做了,因为你写了,你已经把它们编入了索引


对于查询,您只需使用过滤器查询
fq=geo:“相交(10.12 50.02)”
,其中
10.12
50.02
表示您点的纬度和经度

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

为什么需要外部JTS jar文件?最新的SOLR仍然需要它吗?因为SOLR 6.x.x不再包含JTS库。只需从这里下载jar文件并将其包含到solr webapp/webapp/WEB-INF/lib/中,然后重新启动solr