【问题标题】:SOLR throws exception while trying to index spatial dataSOLR 在尝试索引空间数据时抛出异常
【发布时间】:2015-06-23 20:34:04
【问题描述】:

我遇到了 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 库的正确方向?

【问题讨论】:

    标签: java apache solr


    【解决方案1】:

    我们能够使用 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 7.6 中使用 solr.SpatialRecursivePrefixTreeFieldType 字段时,这对我有用。
    猜你喜欢
    • 2011-02-02
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多