使用solr的Ckan空间查询不起作用

时间:2016-06-16 10:58:47

标签: solr spatial ckan

我将ckanext-spatial安装到在virtualbox中的debian8虚拟机中运行的工作ckan实例中。

我使用geoJson信息创建一些示例数据并测试空间查询,一切正常。

第二天,我初始化debian虚拟机并尝试空间查询,但它们没有返回任何结果。分析问题我发现solr数据不包括空间参数,如bbox_area,maxx,maxy,minx和miny。在solr日志中,我可以看到系统正在使用的查询,它们包括如下的空间参数:

...max(0, sub(min(32.9694995329, maxy)))...

似乎问题在于solr服务中的数据不包含空间信息。

我尝试使用ckan中的geojson信息创建新数据集,但同样会导致solr系统中没有空间信息的数据。我也重新安装了postGIS,但问题仍然存在。

最后我运行了paster命令:

paster --plugin=ckan search-index rebuild --config=/etc/ckan/default/development.ini

为了重新索引solr数据,我收到以下错误:

  

错误[ckanext.spatial.plugin] solr后端仅支持bbox,   忽略几何{{type':“Polygon”,“coordinates”:[[[-17.3035,   32.8807],[ - 16.6635,32.8807],[ - 16.6635,32.6075],[ - 17.3035,32.6075]]}}

如何解决此问题?为什么向solr系统发送空间信息的过程不起作用?我的空间数据存在一些格式问题?

1 个答案:

答案 0 :(得分:2)

问题在于我错误地定义了geojson信息。当需要5分时,我只为Polygon定义了4个点。

错:

{ "type": "Polygon", 
  "coordinates": [ [ [ -17.3035, 32.8807 ], 
                     [ -16.6635, 32.8807 ], 
                     [ -16.6635, 32.6075 ], 
                     [ -17.3035, 32.6075 ] 
                 ] ] 
} 

确定:

{ "type": "Polygon", 
  "coordinates": [ [ [ -17.3035, 32.8807 ], 
                     [ -16.6635, 32.8807 ], 
                     [ -16.6635, 32.6075 ], 
                     [ -17.3035, 32.6075 ],
                     [ -17.3035, 32.8807 ]
                 ] ] 
} 

我只是不明白,如果我总是用4分来定义多边形,这怎么可能有用呢!