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))\""
希望对您有所帮助。
我遇到了空间字段的 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))\""
希望对您有所帮助。