我目前正在使用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(....)
谷歌小组中提到的其他人有一些补丁(下面的链接),但大多数都无法访问。
参考文献:
答案 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地理类型,按距离排序并不完美(但有效)
答案 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中的许多错误消息。