如何对 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})
当我在 Stream 文档中遇到这一行时,我非常深入地将 Stream 集成到我现有的分页实现中(它也用于对存储在 MySQL 中的非 activity 数据进行分页)在“Custom Ranking”下:
Please note:
offset
andid_lt
cannot be used to read ranked feeds. Usescore_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})