如何对 Stream 排名提要进行分页?

How do I paginate a Stream ranked feed?

当我在 Stream 文档中遇到这一行时,我非常深入地将 Stream 集成到我现有的分页实现中(它也用于对存储在 MySQL 中的非 activity 数据进行分页)在“Custom Ranking”下:

Please note: offset and id_lt cannot be used to read ranked feeds. Use score_lt for pagination instead.

这似乎是文档中唯一提到 score_lt 的地方。我在其他任何地方都找不到它的讨论,也找不到它的价值应该是什么的例子。如果我对非排名提要进行分页,它是否应该与我用于 id_lt 的 UUID 相同?或者它是某种只能由排名提要返回的分值?

通常我会尝试看看,但排名供稿仅适用于付费计划,我仍在评估 Stream。

不过,这可能会对我实现分页的方式产生重大影响,因为如果我继续使用 Stream,我确实希望将来能够使用排名提要。

使用特定排名配置从排名提要中检索活动时,每个 activity 将包含一个 score 属性。您可以使用 score_lt 对排名提要中的项目进行分页(连同 limit 参数)。

(在非排名提要上对项目进行分页时,我们通常建议使用 id_lt 参数,这将按创建日期 return 活动按时间顺序从最近到最不最近。但是,由于排名提要中较旧的内容可能比较新的内容排名更高,我们必须通过 score 属性进行分页和排序。)

--

每当您创建排名供稿时,您将至少创建一个排名供稿配置。我要命名我的排名 Feed 配置 ranked-feed-config-one(你可以有任意多个)它看起来像这样:

{
    "score": "decay_linear(time) * popularity ^ 0.5",
    "defaults": {
        "popularity": 1
    }
}

每当您将新的 activity 发送到流中时,您还将提供一个可选的 popularity 参数。 (如果您不提供,popularity 将默认为 1。)

然后,每当您从排名提要中检索活动时,您可以指定要使用的排名配置 (ranked-feed-config-one),如下所示:

someFeed.get({ ranking: 'ranked-feed-config-one' })

每个 activity 都将 return 与 score 属性一起编辑(并按其排序)。您将保存最后一个 score 属性,并在为将来的分页调用提供 score_lt 参数时使用它。

--

希望这有助于解决问题!让我知道是否还有什么可以帮您解答的。

您可以使用 Limit & Offset Pagination.

someFeed.get({limit:20, offset:20})