gpt4 book ai didi

python - 带有特定输出的Elasticsearch DSL查询

转载 作者:行者123 更新时间:2023-12-02 22:16:23 26 4
gpt4 key购买 nike

我在数据库中有一些对象:
对象1,对象2,对象3,..,对象n

现在我正在做这样的过滤器

MyDocument.search().filter("match", is_active=True).sort('id').execute()

输出:
searchDocumentobject 1, searchDocumentobject 2,searchDocumentobject 3, ....

现在,我需要从列表的最后开始 searchDocumentobject 2

需要这样的输出:
searchDocumentobject 1,searchDocumentobject 3, .... , searchDocumentobject 2

谢谢

最佳答案

在MyModel中,添加一个新方法,如果要最后保留该文档,则该方法将返回0,否则将返回1。

class MyModel(models.Model):

# Add new method here
def get_rank(self):
if self.id == 2: # your condition here
return 0 # return 0, if you want to keep it at last
return 1

现在,您可以在MyDocument中使用此方法。在MyDocument中添加一个新字段,我们将使用该字段进行排序。
class MyDocument(Document):
# Add new field here
rank = fields.IntegerField(attr='get_rank')

现在,您可以像这样查询
MyDocument.search().filter("match", is_active=True).sort('-rank', 'id').execute()

关于python - 带有特定输出的Elasticsearch DSL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61074041/

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