2010-11-18 3 views
2

В настоящее время я использую haystack django с xapian. Я не мог найти документацию о том, как выполнять геопространственные запросы на xapian. Но, похоже, у Солра есть определенный импульс. Поэтому я в настоящее время экспериментирую с этим.Как выполнить Geo Пространственный поиск с django-haystack + solr

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

http://127.0.0.1:8080/solr/select/?q=blahblah&spatial= лат {радиус = 1,0% 20sort = верно!}: 10,0, LNG: -10,0

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

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

Список литературы:

ответ

1

Вот вилка Джанго стогу, который добавляет поддержку для:

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

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

+0

Кажется устаревшим, но я мог бы побить его в форме с некоторой работой. Проблемы, которые у меня были: –

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

+0

Существует также ветвь xapians GIS, которая может появиться в будущем. Но до сих пор есть патч для текущей ветви xapian, которая плавно очищает от ствола совместимые функции геопространственной ветви. Возможно, попробуйте некоторые из этих вариантов, прежде чем качать стог сена, так как большая часть моей логики поиска уже построена на этом. – Sidmitra

0

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

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

0

Я согласен с https://github.com/sidmitra/django-haystack-spatialsolrplugin.

Это, кажется, устарело, но я мог бы побить его в форме с некоторой работой. Вопросы, которые у меня были:

  • Трудно найти JSP 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.

Другими словами, вы можете, конечно, заставить его работать, но вы должны быть в состоянии иметь дело с целым рядом сообщений об ошибках в обоих питона и Java, прежде чем попасть туда.

Смежные вопросы