Solr的地理空间格式化器不起作用?

时间:2016-08-31 16:17:45

标签: solr lucene geospatial

我已将包含名为“geo”的SpatialRecursivePrefixTreeFieldType字段的文档编入索引。我正在阅读有关Geospatial formatter的内容,并想尝试一下,但我似乎无法让它发挥作用。

以下是我编入索引的示例文档:

{
    "geo": "POLYGON((22.376144 -50.055954, 36.013237 -50.055954, 36.013237 -47.949005, 22.376144 -47.949005, 22.376144 -50.055954))",
    "id": "a3ca6c69-acb9-30e6-b1a6-dbfd72917bc8",
    "val_d": 33.067356,
    "_version_": 1541776337602084900,
    "insert_timestamp": "2016-08-04T23:14:54.814Z"
}

这是我正在尝试的查询:

q=id%3A%22a3ca6c69-acb9-30e6-b1a6-dbfd72917bc8%22&rows=1&fl=*%2C%5Bgeo+f%3Dgeo+w%3DGeoJSON%5D&wt=json&indent=true

以更易阅读的格式:

q=id:"a3ca6c69-acb9-30e6-b1a6-dbfd72917bc8"
rows=1
fl=*,[geo f=geo w=GeoJSON]
wt=json
indent=true

我得到的结果就是索引文档,正如我上面引用的那样。我也尝试修改fl参数以包含像fl=*,geojson[geo f=geo w=GeoJSON]这样的密钥,但这也不起作用。

我有理由不能让格式化器工作吗?

版本信息:

  • solr-spec:5.3.1
  • solr-impl:5.3.1 1703449 - 贵族 - 2015-09-17 01:48:15
  • lucene-spec:5.3.1
  • lucene-impl:5.3.1 1703449 - 贵族 - 2015-09-17 01:38:09

1 个答案:

答案 0 :(得分:2)

根据以下版本在版本6.1中添加了地理空间变换器:

https://issues.apache.org/jira/browse/SOLR-8814

  

通过微小的更改,我们可以修改现有的JSON编写器,为SolrDocumentList生成GeoJSON FeatureCollection。然后我们可以选择一个字段作为几何类型,并将其用于Feature#geometry
  "response":{"type":"FeatureCollection","numFound":1,"start":0,"features":[ {"type":"Feature", "geometry":{"type":"Point","coordinates":[1,2]}, "properties":{ ... the normal solr doc fields here ...}}] }}
  这将允许将solr结果直接添加到各种映射客户端,如Leaflet   此补丁适用于具有以下任一空间字段的Documents:   1.扩展AbstractSpatialFieldType   2.具有geojson的存储值   2.有一个可以由spatial4j(WKT等)解析的存储值   空间字段使用参数geojson.field

标识

标记为

  

Fix Version / s:6.1,master(7.0)

所以问题的答案是;地理空间格式化程序需要升级到Solr 6.1才能工作。