繁体   English   中英

根据星级评分增加搜索相关性

[英]Increase search relevance based on star-rating

我正在使用MySQL构建一个PHP应用程序,用户可以在其中发布文章,他们也可以使用5星系统对这些文章进行评分。 我一直在想,当用户执行文本搜索时,我应该将高评级的一点点移到顶部,这样可以很容易地找到更好的文章。

我正在使用MySQL FULL TEXT索引来执行搜索,因此相关性得分来自该搜索。

我想知道如何利用星级来篡改搜索相关性(不会让用户感到沮丧)?

我虽然在做简单的乘法来提高相关性评级次数。 这将使五星级文章比一星级的相关性高5倍,如下所示:

SELECT *, (MATCH (title, tags, content) AGAINST('search terms')) *
   rating AS score
 FROM articles WHERE MATCH (title, tags, content) AGAINST('search terms')
 ORDER BY score DESC

这是一个好主意吗?

我还想过将相关性乘以评级的对数(加1,以避免在评级低于e时降低相关性),因此增幅不是很高。 如果相关性更高,这也会使评价较差的文章有更好的机会。 声明如下:

SELECT *, (MATCH (title, tags, content) AGAINST('search terms')) *
   (1 + LN(rating)) AS score
 FROM articles WHERE MATCH (title, tags, content) AGAINST('search terms')
 ORDER BY score DESC

我应该使用哪种方法? 有更好的方法吗? 或者忽略用户评分并仅使用术语相关性更好?

(作为一个附带问题,未评级的文章会发生什么?)

第二个听起来更好。 您一定要考虑用户评分。

未评级的文章会发生什么,它们会在列表的最底部,这是你想要的吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM