首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solr &用户数据

问Solr &用户数据
EN

Stack Overflow用户
提问于 2014-08-20 19:55:50
回答 1查看 109关注 0票数 0

让我们假设我正在开发一个为用户提供文章的服务。用户可以喜欢的文章,我正在使用Solr存储这些文章的搜索目的。

但是,当用户将一篇文章添加到他们最喜欢的列表中时,我希望能够找出用户添加到收藏夹中的文章,这样我就可以突出显示最喜欢的按钮了。

我正在考虑两种方法:

  1. 从Solr中获取文章,然后循环遍历每一篇文章,从MySQL中为这个特定的用户获取本文的“最喜欢的状态”。
  2. 每当用户喜欢某篇文章时,将该用户的ID添加到Solr中的多值列中,并检查当前用户的ID是否在该列中。

我不知道多值列的容量..。我也不认为第二种方法是“良好做法”(在索引中保存与用户相关的数据)。

如果有的话,我还有别的选择吗?方法2是正确的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-20 20:48:23

我将使用第一个版本的修改版本--它将保留用户特定的数据,而这些数据不会用于索引之外(尽管如果您预见到一个情况,您希望搜索最喜欢的文章,那么索引中可能会有一个有趣的领域)。为了像本例中那样的显示目的,我将获取从Solr返回的所有id,在一个SQL语句中从数据库中获取它们,然后根据这一点设置UI值。这是一个快速而简单的解决方案。

如果您预见到“只在我的文章中搜索”作为用例,我也会尝试将这些信息输入索引(或其他筛选应用程序,以确定某个特定用户是否将该字段添加为自己最喜欢的字段)。在这种情况下,除了用户id之外,我还会尽量避免索引任何内容。

不过,这两种解决方案都可以工作,尽管后者需要更多的代码--如果有大量用户使用fav的一篇文章,Solr所需的响应可能会越来越大,所以我会尽量避免返回一组userid(如果是这样的话)(很多fav都是一篇文章)。

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

https://stackoverflow.com/questions/25413343

复制
相关文章

相似问题

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