0

来自 peewee 文档:

生成将计算并返回搜索匹配质量的表达式。此排名可用于对搜索结果进行排序。等级越低,比赛越好。

我目前正在测试 Peewee 提供的全文搜索功能。文档提到较低的分数是更好的匹配,但我得到的只是负分,它是否旨在返回负分?

询问:

query = (models.Post
         .select(models.Post.title, models.Post.content, models.FTSPost.rank().alias('score'))
         .join(models.FTSPost, on=(models.Post.id == models.FTSPost.post_id))
         .where(models.FTSPost.match(search_query))
         .order_by(models.SQL('score').desc()))
4

1 回答 1

2

是的,它给出负分,因此当您按排名(升序)排序时,您会以正确的顺序获得结果。

这可能与您在我的博客上找到的内容相冲突,例如,因为早期版本没有这样做,并且需要按分数降序排列。

但是,基本上,如果您使用的是较新版本的 peewee,只需按分数 ASCending 排序,就可以了。

于 2016-01-27T08:09:16.637 回答