Радиус поиска по нескольким локациям с django-haystack и Spatial Solr Plugin - PullRequest
1 голос
/ 10 мая 2011

У меня есть модель Person, которая теперь может иметь несколько офисных «местоположений», каждое со своей широтой / долготой.

Прежде чем можно было добавить только 1 офис, я использовал вилку, которую я сделал для django-haystack, которая использует плагин JTeam для определения радиуса. Смотри https://github.com/sidmitra/django-haystack

class PersonIndex(indexes.SearchIndex):
    lat = indexes.FloatField()
    lng = indexes.FloatField()

sqs.spatial(lat=lat, long=lng, radius=radius, unit=kwargs.get('unit'))

Поскольку число офисов не ограничено, я не могу использовать отдельные поля lat / lng в индексе.

Один из способов, которым я мог придумать, - это индексировать модель «Местоположение». Каждое местоположение будет отдельной записью в индексе. Таким образом, решение этой проблемы, но будет означать репликацию всех полей из индекса Person в этот индекс местоположения. Хотя это может быть хорошим решением в краткосрочной перспективе, но, вероятно, будет неопрятным в долгосрочной перспективе?

Хотите знать, если есть способ индексировать местоположения по отдельности, а затем фильтровать связанных лиц по адресам, которые находятся в пределах указанного радиуса?

...