Django全文搜索顺序相关

Joh*_*ohn 5 django django-queryset

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

MyModel.objects.filter(title__search = 'some title')
Run Code Online (Sandbox Code Playgroud)

如何根据相关性对其进行排序,因为目前它似乎按字母顺序排序?

具体来说,我想搜索结果,标题some title首先出现在有标题的东西之前a different but contains some title.

编辑:

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

class Meta:
    ordering = ['title']
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*ams 0

尝试:Model.objects.all().order_by().search()-不带任何参数调用 order_by 根本不进行排序

除此之外:我会赞同 Carl 对 Haystack 的推荐,特别是因为它允许更复杂的事情,比如词干(“dance”将匹配“dances”、“dancers”和“dancing”)、faceting(“向我显示用户和数量”)。每个搜索结果的点击次数”),获取与您当前显示的对象相似的对象等。当我上次尝试 Whoosh 时,它不稳定(即在索引期间崩溃),但它需要相当短的时间才能启动Solr,这太棒了。