Как выполнить географический поиск Geo с Django-Haystack + Solr

StackOverflow https://stackoverflow.com/questions/4214739

Вопрос

В настоящее время я использую 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/frutik/django-haystack/tree/1.2.x.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top