【问题标题】:Information Architecture & Retreival - Prioritizing queries信息架构和检索 - 优先查询
【发布时间】:2013-10-03 01:49:41
【问题描述】:

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

然后我有一个算法,可以根据每种类型的相关程度对其进行排名。该算法基于几个因素,包括自对特定类型采取行动以来的时间、一种信息类型对另一种信息类型的重要性、一种类型的显示频率等。

一旦他们被排名,我就会在一个提要中将他们展示给用户,类似于 Facebook。

我的问题很简单。我需要数据才能通过排名算法运行它,所以从数据库中只提取我需要的数据的最有效方法是什么。

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

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

我考虑过一个包含所有信息类型和算法的大型 sql 查询,它可以工作,但这确实是一个巨大的查询,而且我让 mysql 做这么多的处理,我属于一般认为 Mysql 应该进行数据检索,而我的编程语言 (php) 应该进行处理。

必须有更好的方法!我确定某处有一篇学术文章,但我一直找不到。

感谢堆栈溢出

【问题讨论】:

    标签: mysql sql ranking information-retrieval


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多