MySql按相关性和另一列匹配顺序

时间:2016-03-20 16:50:24

标签: mysql sql match-against

我想按相关性排序match against次搜索,然后按listing_time列排序。相关性搜索效果很好,但是当我添加listing_time列时,搜索会带来看似随机的结果。

这是我的sql

SELECT title, listing_time, match(description) against('+clip' in boolean mode) as rel
FROM product order by rel desc

这会在0.2秒内带来86个结果,所有结果都为relevance 1。大。

但是当我尝试使用额外的cloumn

进行相同的搜索时
FROM product order by rel, listing_time desc

我在27秒内得到1000个结果,它们的相关性已经到处都是。可怕的。

那我该如何正确地做到这一点?我想要相关的结果,我希望它们通过listing_time排序。

1 个答案:

答案 0 :(得分:1)

我猜你打算让order by成为:

order by rel desc, listing_time desc
-------------^

ascdesc适用于每个密钥。

您的问题中没有任何内容表明两个结果集会有所不同,例如我猜测查询不完全相同(例如,因为joinwhere子句。