Sitecore 7 ContentSearch - 随机排序

时间:2013-10-15 08:34:01

标签: sitecore sitecore7

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

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

有人可以指出我需要做的正确方向,以便能够直接从Lucene实现这一目标吗?

3 个答案:

答案 0 :(得分:1)

如果您正在处理较小的项目子集,那么使用Fisher-Yates或任何其他混洗算法随机调整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还不太熟悉,所以如果有更简单的方法,我希望有人可以提供它。

答案 1 :(得分:1)

您可以尝试自定义排序选项,如下所述:Lucene 2.9.2: How to show results in random order? 然而,根据我们的经验,这并不比随机化所有结果更好。 为此,有几个选项:Linq to Entities, random order

答案 2 :(得分:0)

史蒂维,请阅读这篇question and answer,这可能会给你一些关于如何去做的灵感。

还建议按article on Sitecore Community

的建议阅读此Stephen Pope