【发布时间】:2011-04-01 13:51:33
【问题描述】:
我正在使用 Django 查询过滤器 __search 来执行全文搜索,例如
MyModel.objects.filter(title__search = 'some title')
我如何让它按相关性排序,因为目前它似乎是按字母顺序排序的?
具体来说,我希望标题为 some title 的搜索结果首先出现在标题为 a different but contains some title 的内容之前。
编辑:
我注意到在 MyModel 的模型定义中我有:
class Meta:
ordering = ['title']
如果我删除它,那么排序就会正确,即按相关性排序。那么有没有一种方法可以将它留在模型定义中,因为它在其他地方有用,然后在我的查询中告诉它忽略它?
【问题讨论】:
-
我不相信它真的如你所愿。只是按照自然顺序,正如所指出的,这是一个布尔搜索。
-
我会回应 Enrico 的评论:鉴于您接受的答案,如果您删除标题排序,您似乎仍然误解您的结果实际上是按相关性排序的。情况并非如此:与 order by 无关,您可以按照数据库选择给您的任何顺序来获取它们。