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

SOLR throws exception while trying to index spatial data

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

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

的文档中一样

我的geo是location_rpt类型,字段类型的定义是:

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

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

org.apache.solr.common.SolrException; org.apache.solr.common.SolrException: Can't parse point '-74.093 41.042 -69.347 44.558' because: java.lang.NumberFormatException: For input string: "41.042 -69.347 44.558"

不知何故第一个点被删除了

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

任何人都可以指出我在 SOLR 5 中索引矩形数据而不需要 JTS 库的正确方向吗?

我们能够使用 CQL ENVELOPE 语法在 Solr 5.x(不使用 JTS Topology Suite)中索引矩形。 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))\""

希望对您有所帮助。