Django 全文搜索按相关性顺序

标签 django django-queryset

我正在使用 Django 查询过滤器 __search 来执行全文搜索,例如

MyModel.objects.filter(title__search = 'some title')

如何让它按相关性排序,因为目前它似乎是按字母顺序排序的?

具体来说,我希望标题为some title的搜索结果首先出现在标题a不同但包含一些标题的搜索结果之前。

编辑:

我注意到,在 MyModel 的模型定义中,我有:

class Meta:
    ordering = ['title']

如果我删除它,那么排序就会正确,即按相关性排序。那么有没有一种方法可以将其保留在模型定义中,因为它在其他地方有用,但然后在我的查询中告诉它忽略它?

最佳答案

正如注意到的那样here ,搜索为Boolean .

没有这样的相关性系数可用于排序。

一个愚蠢的想法可以按标题长度排序,这是有道理的。

关于Django 全文搜索按相关性顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3529703/

相关文章:

python - 能够将字段保存到变量中并使用到 queryset.value() 中吗? Django

django - AWS Elastic Beanstalk +Nginx+Gunicorn

django - 使用 bash 脚本删除 django 的数据库设置

django - 按字段获取 Queryset 的不同值

django - django 中带有额外条件的左外连接

Django 使用注解更新查询集

python - 如何在 django 中正确迭代一个巨大的查询集?

python - 使用 Django,如何从父类(super class)对象实例构造代理对象实例?

python - 属性错误 : 'Settings' object has no attribute 'DATABASE_ENGINE'

python - 将csv文件附加到django中的电子邮件