我遇到了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
库吗?
答案 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))\""
我希望这会有所帮助。