gpt4 book ai didi

django - 通过地理空间数据排序并基于字段向上移动特定记录-ElasticSearch DSL DRF

转载 作者:行者123 更新时间:2023-12-03 02:30:08 25 4
gpt4 key购买 nike

我当前要解决的情况是从ElasticSearch DSL - DRF中使用GeoSpatialOrderingFilterBackend,后者根据位置(纬度,长度)对文档进行排序,作为返回,它给出了elasticsearch_dsl.search.Search查询集-应该按顺序排序;尽管我有一些情况是featured,因此希望将它们移到queryset的顶部。

方案(原样):

Record 1, Location X, Featured False
Record 3 Location Y, Featured False
Record 2, Location Z, Featured True

预期:
Record 1, Location Z, Featured True
Record 2, Location X, Featured False
Record 3, Location Y, Featured False

之后对查询集进行排序(如下所示),将精选集放在顶部;尽管会扰乱整个地理空间/位置的顺序。
result = super().filter_queryset(request, queryset, view).sort('-featured')

我正在寻找一种方法将特色记录放在首位;但要保持记录的顺序。

最佳答案

GeoSpatialOrderingFilterBackendget_ordering_query_params函数中提供了排序查询参数。当您再次根据featured进行订购时,还要考虑查询中的那些参数。

geo_ordering_fields = self.get_ordering_query_params(request, view)
result = super().filter_queryset(request, queryset, view).sort('-featured', geo_ordering_fields)

关于django - 通过地理空间数据排序并基于字段向上移动特定记录-ElasticSearch DSL DRF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60201850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com