2

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

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

http://127.0.0.1:8080/solr/select/?q=blahblah&spatial= {!radius=1.0%20sort=true}lat:10.0,lng:-10.0

任何人都可以向我指出一个 haystack 补丁,它允许我传递这样的自定义查询。我可以使用 raw_search(),但我不能链接结果。无论如何,我想找到一种更清洁的方法来做类似 sqs.spatial(....)

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

参考:

4

4 回答 4

1

如果您不依赖 Xapian,请查看Django、Sphinx 并按距离搜索。当我遇到这个问题时,我遇到了类似的问题,这似乎解决了它。感谢django-sphinx,它的设置和 Haystack 一样容易。Sphinx 似乎也提供了更多的灵活性。

于 2010-11-18T23:40:47.717 回答
1

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

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

相应的注释在这里: https ://github.com/sidmitra/django-haystack-spatialsolrplugin/wiki/_pages

于 2011-09-28T07:50:34.080 回答
0

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

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

于 2011-11-25T13:12:43.317 回答
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 时遇到了进一步的问题,因此 GeoDistanceComponent 在查询具有有效的 rsp 之前从未加载过。

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

于 2011-12-06T16:04:47.150 回答