Mysql需要相关性,然后按日期排序

时间:2014-01-09 02:58:51

标签: mysql search full-text-search relevance

在classfieds广告网站上,我有一个如下所示的查询:

SELECT * FROM ads WHERE MATCH (ad_title, ad_description) AGAINST ('VW gearbox')

这表明相关结果排序很好。 但我希望在按ad_date排序时保持相关性。如果我按日期直接对这些进行排序,那么它可能会在最后显示结果,而这些结果最不相关。

我需要调整此查询以限制结果的相关性,然后才按日期排序。

我发现了很多类似的问题,但我必须承认我在其他问题中理解样本查询时遇到了麻烦。

我确实尝试追加as relevancy,但我收到了MySQL错误。

1 个答案:

答案 0 :(得分:2)

如果您的意思是首先按相关性排序,然后按日期排序,请尝试

SELECT * FROM ads WHERE MATCH (ad_title, ad_description) AGAINST ('VW gearbox')
ORDER BY MATCH (ad_title, ad_description) AGAINST ('VW gearbox') DESC, ad_date DESC

或通过类似的内容限制相关性

SELECT * FROM ads WHERE MATCH (ad_title, ad_description) AGAINST ('VW gearbox') > 0.3 ORDER BY ad_date DESC

您可SELECT *, MATCH(ad_title,ad_descriptioN) AGAINST ('VW gearbox') as relevancy FROM ads了解数字并查看截止结果的数字。

相关问题