Как выполнить географический поиск Geo с Django-Haystack + Solr
-
26-09-2019 - |
Вопрос
В настоящее время я использую Django HayStack с Xapian. Я не смог найти документацию о том, как выполнять геопространственные запросы на XAPIAN. Но кажется какой-то импульс на Solr. Так что я в настоящее время экспериментирую с этим.
Я не мог получить Spatialsolr работать должным образом на местных, но сейчас работает с пространственно-Solr-Light, который, кажется, работает нормально. Он принимает запросы, такие как
http://127.0.0.1:8080/solr/select/?q=blahblah&spatial=.{! RADIUS = 1,0% 20SORT = TRUE} LAT: 10.0, СПГ: -10.0
Может ли Anyony указывать мне на патч для стога сена, который позволяет мне такое пройти пользовательские запросы. Я мог бы использовать RAW_Search (), но я не могу цепить простыни. В любом случае я хотел бы найти более чистый способ сделать что-то вроде SQS.Spatial (....)
Есть несколько патчей от других людей, упомянутых на Google Group (ссылки ниже), но большинство из них недоступны.
Использованная литература:
Решение 2
Вот вилка Django Haystack, которая добавляет в поддержку:
https://github.com/sidmitra/django-haystack-spatialsolrplugin.
И соответствующие заметки здесь:https://github.com/sidmitra/django-haystack-spatialsolrplugin/wiki/_pages.
Другие советы
Если вы не привязаны к Xapian, посмотрите на Django, Sphinx и поиск по расстоянию. Отказ У меня была похожая проблема, когда я бежал по этому вопросу, и это, кажется, это решает. Благодаря django-sphinx., это так же легко настроить, как сена сена. Сфинкс также предлагает больше гибкости.
Сидмитра, я сделал порт вашего решения, используя HayStack 1.2.x и Solr 3.4. С некоторыми ограничениями быть Фрэнком - в настоящий момент не поддерживает генерацию схемы, только Latlong Geo Type поддерживается, сортировка по расстоянию не идеально (но работает)
я согласен с 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.
Другими словами, вы, безусловно, можете заставить его работать, но вы должны иметь возможность справиться с несколькими сообщениями об ошибках как в Python, так и в Java, прежде чем попасть туда.