首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于历史的个性化搜索结果

基于历史的个性化搜索结果
EN

Stack Overflow用户
提问于 2011-06-29 19:27:56
回答 4查看 259关注 0票数 1

向登录用户提供个性化搜索结果的一些技术是什么?我能想到的一种方法是分析用户的浏览历史。

Tracking:用户的活动日志,比如页面浏览和点击“喜欢”按钮,都可以用来对搜索结果产生偏见。

问题1:如何跟踪用户的浏览历史?一个列为user_idnumber_of_hitspage id的表?如果我每天有1000名访客,平均每个人浏览10页,那么每次需要个性化推荐时,会不会有大量的select记录?这张桌子将以每月300 K行的速度增长!每次进行搜索时,select都要花费越来越长的时间。我想用来记录“喜欢”的表将采用相同的表格设计。

问题2:如何偏倚搜索结果?例如,如果用户一直在搜索苹果产品,那么用户喜欢苹果产品并随后将搜索偏向于苹果产品的搜索引擎realise是如何实现的呢?标记页面并在访问的页面上积累标签记录?

EN

回答 4

Stack Overflow用户

发布于 2011-06-29 19:34:11

您可能不想将关系数据库用于这类事情,看看mongodb或cassandra。这是因为您基本上希望在用户的历史记录中添加一个新列,所以面向列的数据库更有意义。

票数 0
EN

Stack Overflow用户

发布于 2011-06-29 19:36:23

每月300 k行并不是很大,事实上,这几乎是零。无论您是使用关系数据库还是非关系数据库,都不重要。

直截了当的办法如下:

  1. 将条目放入表/集合中,如下所示:

时间戳、用户、操作、misc信息

(确保尽可能多地输入信息,这样就不需要将这个数据仓库表与任何其他表连接起来)

  1. 按时间戳(每月一个分区)进行分区,而不是直接针对该表,而是要求每天报告运行在所有数据上的作业,收集和计算必要的统计数据并将它们写入汇总表。
  2. 对报表查询进行反思,并将适当的分区本地索引
  3. 只针对来自web前端

>G 213的汇总表。

票数 0
EN

Stack Overflow用户

发布于 2011-06-29 19:39:36

如果您只存储最后的X结果,而不是所有的结果,那么它很可能是可行的。可能会让事情变慢,但会奏效的。任何时候你写更多的数据和读取更多的数据,都会产生影响。适当的DBA方法(如索引和查询优化)可能会有所帮助,但无论您使用什么,都会产生影响。

我会亲自考虑将用户的默认视图存储在DB中,并使用会话来跟踪其余的视图。当然,当你登录的时候就没有历史记录了。但是您可以利用这一点突出显示一组您认为对引导用户重要或相关的特殊页面。一种突出的系统。更快,更容易,更方便用户。

至于偏差,您可以为每条记录编写一组关键字,并相应地对其进行数组排序。使用PHP不会非常困难。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6526132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档