2013-10-15 55 views
2

在Sitecore 7中使用ContentSearch Linq API,我如何能够有效地从大约1500个潜在结果中随机选择3个搜索结果?Sitecore 7 ContentSearch - 随机排序

到目前为止,我正在考虑使用API​​返回一个完整的ID列表(看起来1500个结果不是那么大),然后在代码中完成其余部分。

有人可以指出我需要做什么才能直接从Lucene实现这个目标的正确方向吗?

回答

0

Stevie,请阅读此question and answer,这可能会为您提供一些有关如何去做的启示。

还建议阅读本article on Sitecore Community通过Stephen Pope

+0

感谢您的回答,但这似乎是指检索结果的总数,我已经成功地做了。我的(也许是奇怪的)情况是我希望我的结果是随机排序的,而且我看不到链接文章的哪个区域可以帮助我做到这一点? –

+0

好吧,这不帮助 “.Where(item => item.Content ==”banana“);” 只是出于好奇,你试图得到的3个结果是什么?他们有没有共同点可以用来过滤? – Shriroop

1

的建议。如果你正在处理项目的较小的子集,为您随机洗牌SkinnyItems的使用费雪耶茨或任何其他的洗牌中的结果可能是最简单的算法。

To shuffle an array a of n elements (indices 0..n-1): 
    for i from n − 1 downto 1 do 
     j ← random integer with 0 ≤ j ≤ i 
     exchange a[j] and a[i] 

Source

我不是太熟悉Sitecore的7还,所以如果有一个更简单的方法来做到这一点,我希望有人能提供。