【问题标题】:How to perform Geo Spatial search with django-haystack + solr如何使用 django-haystack + solr 执行地理空间搜索
【发布时间】:2010-11-18 12:30:27
【问题描述】:

我目前正在将 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 组中提到了其他人的一些补丁(下面的链接),但大多数都无法访问。

参考资料:

【问题讨论】:

    标签: solr geospatial django-haystack


    【解决方案1】:

    如果您没有绑定到 Xapian,请查看 Django, Sphinx and search by distance。当我遇到这个问题时,我遇到了类似的问题,这似乎解决了它。感谢django-sphinx,它的设置就像 Haystack 一样简单。 Sphinx 似乎也提供了更多的灵活性。

    【讨论】:

    • 我直接从作者那里找到了带有 SpatialSolr 的 haystack 缺失补丁。他在groups.google.com/group/django-haystack/browse_thread/thread/…更新了帖子
    • 还有 xapians 的 GIS 分支可能会在未来登陆。但在此之前,xapian 的当前分支有一个补丁,它可以干净地对主干修补地理空间分支的兼容特性。可能会在放弃 haystack 之前先尝试其中一些选项,因为我的大部分搜索逻辑已经建立在此之上。
    【解决方案2】:

    【讨论】:

    • 它似乎已经过时了,但我可以通过一些工作将它打造成形状。我遇到的问题:
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

      它似乎已经过时了,但我可以通过一些工作将它打造成形状。我遇到的问题:

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

      • 我在网上找到的示例xml文件中的classpaths都是错误的;我不得不删除 .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 中的许多错误消息。

      【讨论】:

        猜你喜欢
        • 2018-06-29
        • 1970-01-01
        • 2013-12-15
        • 2013-08-12
        • 2023-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多