Indexing 为活动流或新闻源创建SOLR索引

Indexing 为活动流或新闻源创建SOLR索引,indexing,solr,lucene,Indexing,Solr,Lucene,我正在尝试为我正在构建的社交门户网站的活动提要编制索引。该门户允许用户相互跟踪,从他们跟踪的人那里获取更新,作为按日期排序的活动提要 例如,用户A将跟踪用户B、C、D、E&F。因此用户A应该在其活动提要上看到来自B、C、D、E&F的所有帖子 让我们假设post只包含两个字段。 1.这篇文章的正文。(文本字段) 2.发布它的用户的名称/UID。(用户_字段) 目前,我正在为所有帖子创建索引,并为文本字段和用户字段编制索引。在规模上,可以有1000000多个帖子。一个用户可以跟随100个用户,如果不

我正在尝试为我正在构建的社交门户网站的活动提要编制索引。该门户允许用户相互跟踪,从他们跟踪的人那里获取更新,作为按日期排序的活动提要

例如,用户A将跟踪用户B、C、D、E&F。因此用户A应该在其活动提要上看到来自B、C、D、E&F的所有帖子

让我们假设post只包含两个字段。 1.这篇文章的正文。(文本字段) 2.发布它的用户的名称/UID。(用户_字段)

目前,我正在为所有帖子创建索引,并为
文本字段
用户字段
编制索引。在规模上,可以有1000000多个帖子。一个用户可以跟随100个用户,如果不是1000个用户的话。为这种情况创建索引的最佳方法是什么

  • 我是否应该为一个人的追随者编制索引,以便其快速查找,然后将其传递给第二个查询,以获得所有这些用户按日期排序的帖子
  • 通过传递跟踪的所有用户的UID,查询由所有这些帖子组成的索引的最佳方法是什么?考虑到这可能是在100年或更久 更新: 将Solr用于新闻提要的动机主要是受到我和团队的简短讨论的启发

    当开始使用社交门户时,
    在编写时分散开来
    似乎是一种过激的做法,而且成本更高。然而,
    在读取时扇出
    更好。幻灯片和OpenSocial团队都建议在阅读时使用
    扇出的搜索后端。上面提到的还有关于它如何帮助他们的数据


    目前,提要将是扁平的,只有排序标准是日期(最近)。我们不会考虑相关性或来自更密切群体的帖子

    这有点抽象,但我会尽我最大的努力。根据你提到的,我不确定Solr是否真的是适合这项工作的工具。您仍然可以使用Solr进行全文搜索,但我不确定在这种情况下是否能从中生成新闻提要。请记住,尽管Solr令人印象深刻,但它是一个搜索引擎。我会假装你将坚持索尔的文章的其余部分,请记住,我们试图把一个方形的钉子穿过一个圆形的洞

    这里有几个你应该考虑的问题

    • 您可能需要将post的时间戳添加到数据元素中
    • 您需要弄清楚如何正确地对结果进行排序。是按最近的顺序吗?还是基于用户更可能与之互动的帖子
    • 如果一个用户有1000多个连接,他是否希望在主提要中看到每个连接的更新?或者来自更亲密朋友群的帖子应该显示得更高
    以下是对您的问题的一些评论:

    1) 若你们给那个人的追随者编制索引,可能很难跟上。我假设追随者会经常改变,在这种情况下重新编制索引并不实际


    2)这听起来更符合标准,但同样,你需要弄清楚排序。您可以获取用户的连接列表,然后从所有连接中搜索热门帖子

    我更新了我的问题,补充了一些细节。饲料不考虑相关性或贴近邮政所有者。我们将有一个按日期排序的平面提要。我得到的建议是,当使用一个在读取时呈扇形展开的提要时,使用搜索后端。我在问题的更新中添加了更多的细节。我不知道你是否明白,因为你发布了它。您可以使用具有两个核心(一个网络和一个提要)的Solr来解决这个问题。在网络核心中,您可以存储userid(字符串)和producer(字符串)。在feeds核心中,您可以将userid作为facet存储原子feed,并以平面方式(actor_id、actor_objectType、actor_displayName)存储feed详细信息,然后查询网络中的生产者,然后与这些生产者一起查询feed。