2016-06-16 32 views
1

我将ckanext-spatial安装到在virtualbox中的debian8虚拟机中运行的工作ckan实例中。使用solr的Ckan空间查询不起作用

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

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

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

看来这个问题是在Solr的服务,不包括空间信息的数据。

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

最后,我运行贴纸命令:

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

为了重新索引Solr的数据,我得到以下错误:

ERROR [ckanext.spatial.plugin] solr backend only support bboxes, ignoring geometry { "type": "Polygon", "coordinates": [ [ [ -17.3035, 32.8807 ], [ -16.6635, 32.8807 ], [ -16.6635, 32.6075 ], [ -17.3035, 32.6075 ] ] ] }

我怎样才能解决这个问题呢?为什么将空间信息发送到solr系统的过程不起作用?我的空间数据有一些格式问题?

+1

我建议你有一个在代码中的戳。这是SOLR获知有关位置的位置:https://github.com/ckan/ckanext-spatial/blob/master/ckanext/spatial/plugin.py#L177 –

回答

2

问题是我正在定义geojson信息错误。当需要5点时,我只为多边形定义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点定义的多边形!