如何使用django-haystack + solr执行地理空间搜索

时间:2010-11-18 12:30:27

标签: solr geospatial django-haystack

我目前正在使用django haystack和xapian。我找不到任何关于如何在xapian上执行地理空间查询的文档。但Solr似乎有一些动力。所以我正在尝试这个。

我无法让spatialSolr在本地正常工作,但现在正在使用space-solr-light,这似乎工作正常。它接受像

这样的查询

http://127.0.0.1:8080/solr/select/?q=blahblah&spatial= {半径= 1.0%20sort =真!}纬度:10.0,LNG:-10.0

anyony可以指向我的干草堆补丁,它允许我传递这样的自定义查询。我可以使用raw_search(),但我不能链接resuts。在任何情况下,我想找到一种更干净的方式来做类似的事情     sqs.spatial(....)

谷歌小组中提到的其他人有一些补丁(下面的链接),但大多数都无法访问。

参考文献:

4 个答案:

答案 0 :(得分:1)

如果你没有与Xapian联系,请查看Django, Sphinx and search by distance。当我遇到这个问题时,我遇到了类似的问题,这似乎解决了这个问题。感谢django-sphinx,它就像Haystack一样容易设置。狮身人面像似乎也提供了更大的灵活性。

答案 1 :(得分:1)

这是django haystack的一个分支,它增加了对:

的支持

https://github.com/sidmitra/django-haystack-spatialsolrplugin

相应的说明如下: https://github.com/sidmitra/django-haystack-spatialsolrplugin/wiki/_pages

答案 2 :(得分:0)

Sidmitra,我使用haystack 1.2.X和solr 3.4制作了解决方案的端口。坦率地说有一些限制 - 目前不支持模式生成,只支持LatLong地理类型,按距离排序并不完美(但有效)

https://github.com/frutik/django-haystack/tree/1.2.X

答案 3 :(得分:0)

我同意https://github.com/sidmitra/django-haystack-spatialsolrplugin

它似乎已经过时了,但我可以通过一些工作来打败它。我遇到的问题:

  • 很难找到java SSP,当我发现它是错误的版本。 http://www.dutchworks.nl/en/home/download.html是对我有用的链接。

  • 我在网上找到的示例xml文件中的类路径都是错误的;我不得不删除.solrext。来自所有人。

  • 该插件对于它所在的目录非常挑剔;在solr / lib

  • 之前,它无法与其他任何东西交谈
  • solr_backend.py需要以下补丁(第505行):

    if self.spatial_query:
        final_query = '{{!spatial circles={lat},{long},{radius} }}{0}'.format(final_query,**self.spatial_query)
    
  • 我在制作solrconfig.xml时遇到了进一步的问题,因此在查询具有有效的rsp之前,GeoDistanceComponent从未加载过。

换句话说,你当然可以使它工作,但是你必须能够在到达之前处理python和java中的许多错误消息。