Как выполнить геопространственный поиск с помощью django-haystack + solr - PullRequest
2 голосов
/ 18 ноября 2010

В настоящее время я использую стог сена django с xapian.Я не смог найти никакой документации о том, как выполнять геопространственные запросы на xapian.Но, кажется, на Solr есть некоторый импульс.Так что я в настоящее время экспериментирую с этим.

Я не мог заставить пространственно-временную работу должным образом работать с локальной системой, но сейчас работаю с пространственной-солнечной подсветкой, которая, кажется, работает нормально.Он принимает запросы типа

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

Может ли кто-нибудь указать мне патч для стога сена, который позволяет мне передавать пользовательские запросы, подобные этому.Я мог бы использовать raw_search (), но я не могу связать результаты.В любом случае я хотел бы найти более чистый способ сделать что-то вроде sqs.spatial (....)

Есть некоторые патчи от других людей, упомянутых в группе Google (ссылки ниже), но большинствоони недоступны.

Ссылки:

Ответы [ 4 ]

1 голос
/ 28 сентября 2011

Вот ветвь стога сена django, которая добавляет поддержку:

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

И соответствующие примечания здесь: https://github.com/sidmitra/django-haystack-spatialsolrplugin/wiki/_pages

1 голос
/ 19 ноября 2010

Если вы не привязаны к Xapian, посмотрите на Django, Sphinx и выполните поиск по расстоянию . У меня была похожая проблема, когда я столкнулся с этим вопросом, и это, похоже, решило ее. Благодаря django-sphinx его так же легко настроить, как и стог сена. Сфинкс также обладает большей гибкостью.

0 голосов
/ 06 декабря 2011

Я согласен с 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, прежде чем попасть туда.

0 голосов
/ 25 ноября 2011

Сидмитра, я сделал порт вашего решения используя haystack 1.2.X и solr 3.4.Откровенно говоря, с некоторыми ограничениями - на данный момент не поддерживается генерация схемы, поддерживается только географический тип LatLong, сортировка по расстоянию не идеальна (но работает)

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

...