2010-11-18 81 views
2

我目前正在使用django haystack與xapian。我找不到有關如何在xapian上執行地理空間查詢的任何文檔。但Solr似乎有一些動力。所以我現在正在試驗。如何使用django-haystack + solr執行地理空間搜索

我無法獲得spatialSolr在本地正常工作,但現在使用空間solr-light,這似乎工作正常。它接受像

http://127.0.0.1:8080/solr/select/?q=blahblah&spatial=查詢LAT {半徑= 1.0%20sort =真!}:10.0,經度:-10.0

能anyony點我的草堆一個補丁,讓我通過這樣的自定義查詢。我可以使用raw_search(),但是我不能鏈接結果。在任何情況下,我想找到一個更乾淨的方式來做類似 sqs.spatial(....)

谷歌組提供了一些補丁(鏈接如下),但其中大多數無法達到。

參考文獻:

回答

1

如果你沒有綁定到Xapian,請看Django, Sphinx and search by distance。當我遇到這個問題時,我遇到了類似的問題,這似乎解決了這個問題。感謝django-sphinx,這與設置Haystack一樣簡單。獅身人面像似乎也提供了更多的靈活性。

+0

我發現直接從作者發現缺少的乾草堆補丁與SpatialSolr。他在http://groups.google.com/group/django-haystack/browse_thread/thread/d0e23d45c0baa300/2298b6cf43389e18?lnk=gst&q=Spatial#2298b6cf43389e18 – Sidmitra 2010-11-19 17:20:18

+0

更新了該主題。還有可能在未來着陸的xapians GIS分支。但在此之前,xapian的當前分支有一個補丁,可以乾淨地對抗主幹分區的地理空間分支的兼容功能。在放棄乾草堆之前,先嚐試一些這些選項,因爲我的大多數搜索邏輯已經建立在這個基礎之上。 – Sidmitra 2010-11-19 17:22:39

0

Sidmitra,我用草堆1.2.X了你的解決方案的端口和3.4。有一些限制坦率地說 - 在目前的模式生成的支持,只有經緯度的地理區域類型的支持,通過距離排序是不完美的(但工程)

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

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中的許多錯誤消息。

相關問題