이미 인덱싱 된 일부 필드를 기반으로 solr에서 검색 결과를 정렬해야합니다. 내 현재 api 요청은 정렬하지 않고 이와 같습니다.인덱싱 된 필드를 기반으로 검색 결과를 정렬
http://127.0.0.1:8000/api/v1/search/facets/?page=1&gender=Male&age__gte=19
그리고 인덱스 순서에 따라 검색 결과를 제공합니다. 하지만 이미 인덱싱 된 DateTimeField 인 'last_login'을 기반으로이 결과를 재정렬해야합니다.
는 여기에 내가 'created_at'값으로 기본 검색 순서를 변경
class ProfileSearchView(FacetMixin, HaystackViewSet):
index_models = [Profile]
serializer_class = ProfileSearchSerializer
pagination_class = PageNumberPagination
facet_serializer_class = ProfileFacetSerializer
filter_backends = [HaystackFilter]
facet_filter_backends = [HaystackFilter, HaystackFacetFilter]
def get_queryset(self, index_models=None):
if not index_models:
index_models = []
queryset = super(ProfileSearchView, self).get_queryset(index_models)
queryset = queryset.order_by('-created_at')
return queryset`
여기 내 뷰셋입니다. 하지만 다음 요청에 대해서는 'last_login'값에 기반한 주문이 있습니다. 나는이
http://127.0.0.1:8000/api/v1/search/facets/?page=1&gender=Male&age__gte=19&sort= 'last_login'
처럼 내 요청에 새 매개 변수를 추가 한하지만 나에게 오류를 제공
나는 가능한이 순서를 달성 할 수있는 방법SolrError: Solr responded with an error (HTTP 400): [Reason: undefined field sort]
? 해결책을 좀 도와주세요.
"sort = last_login desc"(또는 오름차순)을 시도하십시오. 필드 이름 주위에 따옴표가 없습니다. – Persimmonium
@Persimmonium 응답 해 주셔서 감사합니다. 나는 이것을 시도했지만 여전히 나에게 동일한 응답을 준다 'SolrError : Solr이 오류 (HTTP 400)로 응답했다 : [이유 : 정의되지 않은 필드 정렬]'. 이것이 제가 시도하는 것입니다. http://127.0.0.1:8000/api/v1/search/facets/?page=1&sort=last_login%20desc. –
그러나 http : // localhost : 8983/solr/select? q = * : * & facet = true & sort = last_login % 20desc과 같은 요청은 잘 동작합니다. 이것이 내 스키마 파일에 문제가 있습니까? –