让我们假设我正在开发一个为用户提供文章的服务。用户可以喜欢的文章,我正在使用Solr存储这些文章的搜索目的。
但是,当用户将一篇文章添加到他们最喜欢的列表中时,我希望能够找出用户添加到收藏夹中的文章,这样我就可以突出显示最喜欢的按钮了。
我正在考虑两种方法:
我不知道多值列的容量..。我也不认为第二种方法是“良好做法”(在索引中保存与用户相关的数据)。
如果有的话,我还有别的选择吗?方法2是正确的方法吗?
发布于 2014-08-20 20:48:23
我将使用第一个版本的修改版本--它将保留用户特定的数据,而这些数据不会用于索引之外(尽管如果您预见到一个情况,您希望搜索最喜欢的文章,那么索引中可能会有一个有趣的领域)。为了像本例中那样的显示目的,我将获取从Solr返回的所有id,在一个SQL语句中从数据库中获取它们,然后根据这一点设置UI值。这是一个快速而简单的解决方案。
如果您预见到“只在我的文章中搜索”作为用例,我也会尝试将这些信息输入索引(或其他筛选应用程序,以确定某个特定用户是否将该字段添加为自己最喜欢的字段)。在这种情况下,除了用户id之外,我还会尽量避免索引任何内容。
不过,这两种解决方案都可以工作,尽管后者需要更多的代码--如果有大量用户使用fav的一篇文章,Solr所需的响应可能会越来越大,所以我会尽量避免返回一组userid(如果是这样的话)(很多fav都是一篇文章)。
https://stackoverflow.com/questions/25413343
复制相似问题