Django Haystack / Elasticsearch dwithin只返回一个SearchResult。期待好几个

时间:2015-01-20 04:22:00

标签: python elasticsearch django-haystack

我使用Django Haystack和Elasticsearch。 ElasticSearch可以执行距离查询并返回5英里半径的11个结果,而Haystack的dwithin方法仅返回相同标准的一个结果。以下是我在表单中使用的搜索查询。

def search(self):
    if not self.is_valid():
        return self.no_query_found()

    if not self.cleaned_data['q']:
        return self.no_query_found()

    sqs = self.searchqueryset.all()


    distance = D(mi=5)

    obj= Geo.objects.get(zip_code=self.cleaned_data['q'])

    latitude = obj.latitude
    longitude = obj.longitude

    center_point = Point(longitude, latitude)

    sqs = sqs.dwithin('location', center_point, distance)

    if self.load_all:
        sqs.load_all()
        return sqs

1 个答案:

答案 0 :(得分:1)

这是答案。如果你接受一个字符串输入,你需要将它转换为int,然后乘以1000.第一部分是有道理的。最后一部分没有记录,所以你走了。