SOLR在尝试索引空间数据时抛出异常

时间:2015-04-17 06:10:27

标签: java apache solr

我遇到了SOLR 5.0安装索引空间字段的问题

我试过索引 <field name="geo">-74.093 41.042 -69.347 44.558</field>http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4#Indexing

中的文档一样

我的地理位置属于location_rpt类型,字段类型的定义为:

<fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType" geo="false"/>

我在日志中发现的错误是:

  

org.apache.solr.common.SolrException; org.apache.solr.common.SolrException:无法解析点'-74.093 41.042 -69.347 44.558'因为:java.lang.NumberFormatException:对于输入字符串:“41.042 -69.347 44.558”

不知何故第一点被放弃了

然而,这适用于之前安装的SOLR,即4.10,我还不想依赖JTS索引为POLYGON

有人能指出我在SOLR 5中索引矩形数据的正确方向,而不需要JTS库吗?

1 个答案:

答案 0 :(得分:6)

我们能够使用CQL ENVELOPE语法在Solr 5.x(不使用JTS拓扑套件)中索引矩形。 CQL ENVELOPE语法简要记录在BBoxField是Solr Wiki。

示例:

ENVELOPE(-10, 20, 15, 10) # ENVELOPE(minX, maxX, maxY, minY)

请注意,此格式使用看似非标准的排序。

对于您的示例,您应该能够索引以下内容(假设您的原始示例采用“minX minY maxX maxY”格式:

<field name="geo">ENVELOPE(-74.093, -69.347, 44.558, 41.042)</field>

在文档中过滤或搜索时,可以使用相同的语法。

"fq": "geo:\"Intersects(ENVELOPE(-74.093, -69.347, 44.558, 41.042))\""

我希望这会有所帮助。