根据索引字段对solr搜索结果排序

根据索引字段对solr搜索结果排序,solr,django-haystack,faceted-search,Solr,Django Haystack,Faceted Search,我必须根据一些已经索引的字段从solr中排序搜索结果。 我当前的api请求是这样的,没有排序 并给出了基于索引顺序的搜索结果。但我必须根据“last_login”字段对这些结果进行重新排序,该字段已被编入DateTimeField索引 这是我的视图集 class ProfileSearchView(FacetMixin, HaystackViewSet): index_models = [Profile] serializer_class = ProfileSearchSeria

我必须根据一些已经索引的字段从solr中排序搜索结果。 我当前的api请求是这样的,没有排序

并给出了基于索引顺序的搜索结果。但我必须根据“last_login”字段对这些结果进行重新排序,该字段已被编入DateTimeField索引

这是我的视图集

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`
在这里,我通过“created_at”值更改了默认搜索顺序。但对于下一个请求,我有基于“last_login”值的订单。我在请求中添加了一个新参数,如下所示

“上次登录”

但这给了我一个错误

SolrError:Solr响应时出错(HTTP 400):[原因:未定义字段排序]

我如何才能实现这一点?请帮助我解决问题。

您提供的URL不是direct SOLR URL。这一定是你的中间件。因为您已经直接尝试了针对Solr的查询,并且它是有效的,所以问题一定在中间件层的某个地方

尝试打印、监视或检查日志,查看midde ware实际生成的URL,并将其与您知道有效的URL进行比较。

您提供的URL不是direct SOLR URL。这一定是你的中间件。因为您已经直接尝试了针对Solr的查询,并且它是有效的,所以问题一定在中间件层的某个地方


尝试打印、监视或检查日志,查看midde ware实际生成的URL,并将其与您知道有效的URL进行比较。

尝试“sort=last\u login desc”(或asc),字段周围没有引号name@Persimmonium谢谢你的回复。我已经尝试过了,但它仍然给出了相同的响应“SolreError:Solr响应了一个错误(HTTP 400):[Reason:undefined field sort]”。这就是我正在尝试的。但是对solr*:*&facet=true&sort=last\u login%20desc的相同请求可以正常工作。这是我的模式文件的问题吗?请尝试“sort=last\u login desc”(或asc),字段周围没有引号name@Persimmonium谢谢你的回复。我已经尝试过了,但它仍然给出了相同的响应“SolreError:Solr响应了一个错误(HTTP 400):[Reason:undefined field sort]”。这就是我正在尝试的。但是对solr*:*&facet=true&sort=last\u login%20desc的相同请求可以正常工作。这就是我的模式文件的问题吗?