Django haystack LocationField另存为字符串
我使用的是Django 1.8.5、haystack 2.4.1和elasticsearch 1.7。这个问题可能是重复的,但问题的出现是因为elasticsearch 2中关于映射的基本更改,但这里问题的根源完全不同,因此我创建了一个新问题 我想将基于地理位置的搜索添加到我的模型中。为此,我做了以下更改: 在我的可搜索模型中:Django haystack LocationField另存为字符串,django,elasticsearch,django-haystack,Django,elasticsearch,Django Haystack,我使用的是Django 1.8.5、haystack 2.4.1和elasticsearch 1.7。这个问题可能是重复的,但问题的出现是因为elasticsearch 2中关于映射的基本更改,但这里问题的根源完全不同,因此我创建了一个新问题 我想将基于地理位置的搜索添加到我的模型中。为此,我做了以下更改: 在我的可搜索模型中: latitude = models.FloatField(blank=True, null=True) longitude = models.FloatField(
latitude = models.FloatField(blank=True, null=True)
longitude = models.FloatField(blank=True, null=True)
def get_location(self):
return Point(self.latitude or 1000, self.longitude or 1000)
在search_index.py中:
location = indexes.LocationField(model_attr='get_location')
通过运行/manage.py build\u index
,我们希望映射得到更新。我检查了映射,但令人惊讶的是位置字段被保存为string
,而不是geo_point
。因此,我的dwithin
过滤器出现问题,无法完成工作
我知道我可以通过直接查询elastic手动创建映射,但我希望haystack通过search\u index.py
来实现。因此,haystack有没有解决这个问题的方法?我需要尽快完成