从Amazon CloudSearch获取随机搜索结果

时间:2015-04-10 09:47:50

标签: amazon-cloudsearch

我的查询如下:

/2013-01-01/search?q=(and author:'william' category:'Videos')&q.parser=structured&expr.random=_rand&return=_all_fields&size=1

并返回视频。但是,我想在每个请求上都有一个随机的videoId。

使用表达式&expr.random=_rand;我无法获取随机结果,但我未能在文档中找到任何解决方案。

如何在每次请求时获得随机搜索结果?

2 个答案:

答案 0 :(得分:6)

CloudSearch文档非常缺乏。我需要类似的东西,并与谷歌短缺,所以我开始猜测应用我已经了解的Solr,我找到了解决方案:

/2013-01-01/search?q=what&sort=_rand_1 desc

请注意,_rand也可以工作但是在第一次搜索之后它总会返回相同的结果,如果你需要通过随机结果集进行分页(它在Solr中的工作方式相同),这实际上是理想的。因此,每次需要随机生成_something并将其追加到_rand时,都要获得随机结果。

答案 1 :(得分:2)

您可以通过将start参数设置为从0到hits.found的随机值并请求size=1来实现此分页:

search?q=matchall&q.parser=structured&size=1&start={yourRandomNumber}

如果索引中的文档数量有波动,您需要进行2次查询:一次获取最大结果数(返回为hits.found),另一次检索随机数结果