2013-10-15 97 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還,所以如果有一個更簡單的方法來做到這一點,我希望有人能提供。