2013-10-14 56 views

回答

7

是的,它是可能的,這裏所描述:http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4 你的Solr的版本必須是4或更高版本,你必須導入JTS的jar文件,你可以從http://sourceforge.net/projects/jts-topo-suite/ 讓你必須定義與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表示您的觀點的經度和緯度。

+0

爲什麼需要外部JTS jar文件?最新的SOLR還需要嗎? – giorgio79

+0

因爲從solr 6.x.x中不再包含JTS庫。 只需從這裏下載jar文件https://sourceforge.net/projects/jts-topo-suite/並將它們包括到solr-webapp/webapp/WEB-INF/lib/ 然後重新啓動solr – Sasha

0

我們需要外部JTS jar文件來首先爲多邊形形狀編制索引。