我的查询如下:
/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;
我无法获取随机结果,但我未能在文档中找到任何解决方案。
如何在每次请求时获得随机搜索结果?
答案 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
),另一次检索随机数结果