我在这里看到了很多“按相关性排序”的帖子...我已经解决了这一部分...我想要实现的是首先按相关性排序,然后按 View 排序的搜索结果.
例如,如果我搜索“狗”
并且我的结果都与“狗”具有相同级别的相关性,那么我希望它按 View 对它们进行排序。
这是到目前为止我的 SQL - 如果您能想到更好的方法,请随意采用不同的方法。
select * from articles where match(title, description, tags)
against ('dog' in boolean mode) ORDER BY match(title, description, tags)
against ('dog' in boolean mode) DESC
最佳答案
在articles
中创建views
字段,在查看记录时递增该字段(updatearticlessetviews=views+1whereid=...
code>,然后将其添加到 order by
子句中:
...order by match(...) against (...) desc, views desc
如果你有日志表,你可以使用它们,但是 MySQL 不能很好地处理大日志表。
关于mysql - 按相关性和 View 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2056651/