Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 资讯架构及;检索-对查询进行优先级排序_Mysql_Sql_Ranking_Information Retrieval - Fatal编程技术网

Mysql 资讯架构及;检索-对查询进行优先级排序

Mysql 资讯架构及;检索-对查询进行优先级排序,mysql,sql,ranking,information-retrieval,Mysql,Sql,Ranking,Information Retrieval,我有一个应用程序,它根据相关性得分向用户显示数据。我可以显示5到7种不同类型的信息(例如用户标签、朋友标签、推荐标签、流行标签等)。每种信息类型都是一个单独的sql查询 然后我有一个算法,根据每种类型的相关性对其进行排序。该算法基于多个因素,包括对特定类型采取操作的时间、一种信息类型对另一种信息类型的重要性、显示一种类型的频率等 一旦他们被排名,我会在一个类似Facebook的提要中向用户展示他们 我的问题很简单。我需要这些数据,然后才能运行排名算法,那么,从数据库中提取所需数据的最有效方法是什

我有一个应用程序,它根据相关性得分向用户显示数据。我可以显示5到7种不同类型的信息(例如用户标签、朋友标签、推荐标签、流行标签等)。每种信息类型都是一个单独的sql查询

然后我有一个算法,根据每种类型的相关性对其进行排序。该算法基于多个因素,包括对特定类型采取操作的时间、一种信息类型对另一种信息类型的重要性、显示一种类型的频率等

一旦他们被排名,我会在一个类似Facebook的提要中向用户展示他们

我的问题很简单。我需要这些数据,然后才能运行排名算法,那么,从数据库中提取所需数据的最有效方法是什么呢

目前,我提取了每种信息类型的前5个实例,然后对它们进行排名。每一段数据都会得到一个相关性得分,如果我没有足够的结果达到某个相关性阈值,我会返回数据库进行下一个5分

这种方法的问题是,我可能会拉太多我从未使用过的一个故事类型,如果我第一次没有得到我需要的东西,我必须继续返回数据库

我曾经考虑过一个包含所有信息类型和算法的大规模sql查询,这可能会起作用,但那确实是一个巨大的查询,我让mysql做了很多处理,我的一般想法是mysql应该做数据检索,我的编程语言(php)应该做处理

一定有更好的办法!我肯定某处有一篇学术文章,但我一直没能找到


感谢堆栈溢出

我假设您所指的信息类型(用户标签、朋友标签等);我建议您不要根据特定的固定阈值再次获取数据,而要稍微更改您的算法。尝试为每种信息类型分配权重,即使您得到一些低优先级类型的记录,也不必再次获取它