从 Amazon CloudSearch 获取随机搜索结果
Get a random search result from Amazon CloudSearch
我的查询是这样的:
/2013-01-01/search?q=(and author:'william' category:'Videos')&q.parser=structured&expr.random=_rand&return=_all_fields&size=1
和returns一个视频。但是,我希望每个请求都有一个随机的 videoId。
使用表达式 &expr.random=_rand;
我无法获取随机结果,而且我未能在文档中找到任何解决方案。
如何在每次请求时获得随机搜索结果?
您可以通过将 start
参数设置为从 0 到 hits.found
的随机值并请求 size=1
:
通过分页来完成此操作
search?q=matchall&q.parser=structured&size=1&start={yourRandomNumber}
如果索引中的文档数量在波动,您需要进行 2 次查询:一次获取最大数量的结果(返回 hits.found
),另一次检索随机结果结果。
CloudSearch 文档非常缺乏。我需要类似的东西并想出了 Google 所以我只是开始通过应用我已经知道的 Solr 来猜测,我找到了一个解决方案:
/2013-01-01/search?q=what&sort=_rand_1 desc
请注意 _rand 也可以工作,但是在第一次搜索后它总是 return 相同的结果,如果您需要对随机结果集进行分页,这实际上是理想的(它在 Solr 中的工作方式相同) .因此,每次需要随机生成一个 _something 并将其附加到 _rand 时获得随机结果。
我的查询是这样的:
/2013-01-01/search?q=(and author:'william' category:'Videos')&q.parser=structured&expr.random=_rand&return=_all_fields&size=1
和returns一个视频。但是,我希望每个请求都有一个随机的 videoId。
使用表达式 &expr.random=_rand;
我无法获取随机结果,而且我未能在文档中找到任何解决方案。
如何在每次请求时获得随机搜索结果?
您可以通过将 start
参数设置为从 0 到 hits.found
的随机值并请求 size=1
:
search?q=matchall&q.parser=structured&size=1&start={yourRandomNumber}
如果索引中的文档数量在波动,您需要进行 2 次查询:一次获取最大数量的结果(返回 hits.found
),另一次检索随机结果结果。
CloudSearch 文档非常缺乏。我需要类似的东西并想出了 Google 所以我只是开始通过应用我已经知道的 Solr 来猜测,我找到了一个解决方案:
/2013-01-01/search?q=what&sort=_rand_1 desc
请注意 _rand 也可以工作,但是在第一次搜索后它总是 return 相同的结果,如果您需要对随机结果集进行分页,这实际上是理想的(它在 Solr 中的工作方式相同) .因此,每次需要随机生成一个 _something 并将其附加到 _rand 时获得随机结果。