在classfieds广告网站上,我有一个如下所示的查询:
SELECT * FROM ads WHERE MATCH (ad_title, ad_description) AGAINST ('VW gearbox')
这表明相关结果排序很好。
但我希望在按ad_date
排序时保持相关性。如果我按日期直接对这些进行排序,那么它可能会在最后显示结果,而这些结果最不相关。
我需要调整此查询以限制结果的相关性,然后才按日期排序。
我发现了很多类似的问题,但我必须承认我在其他问题中理解样本查询时遇到了麻烦。
我确实尝试追加as relevancy
,但我收到了MySQL错误。
答案 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
了解数字并查看截止结果的数字。