2015-01-20 3 views
1

나는 Elsesearch와 함께 Django Haystack을 사용하고 있습니다. ElasticSearch는 거리 쿼리를 수행하고 반경 5 마일에 대해 11 개의 결과를 반환 할 수 있지만 Haystack의 dwithin 방법은 동일한 기준에 대해 하나의 결과 만 반환합니다. 아래는 내 양식에서 사용하는 검색어입니다.Django Haystack/Elasticsearch dwithin은 하나의 SearchResult 만 반환합니다. 몇 가지가 있습니다

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

여기가 답입니다. 문자열 입력을 받으면이를 int로 변환 한 다음 1000을 곱해야합니다. 첫 번째 부분은 의미가 있습니다. 마지막 부분은 문서화되어 있지 않으므로 여기에 설명되어 있습니다.