我有一個IQueryable<T>
對象作爲搜索結果對象。 我對這個搜索對象應用過濾和排序。訂購Sitecore搜索結果
在我打電話給GetResults()
之前,我想根據該字段的一個字段(字段名稱 - Priority
)值排序結果。因此,對於IQueryable<T>
對象中的所有項目,我想按優先級字段對它們進行排序,因此所有具有該字段值的項目都保留在頂部,剩下的項目位於底部。
我有fieldmap
條目的優先級字段。
search.OrderByDescending(i => !string.IsNullOrEmpty(i.GetItem().GetFieldValue("Priority")))
上述命令不起作用。顯然,我不能使用IQueryable的Sitecore擴展方法?如果我轉換search.ToList()
。做排序,然後將其轉換回AsQueryable()
,我得到以下錯誤:
There is no method 'GetResults' on type 'Sitecore.ContentSearch.Linq.QueryableExtensions'
that matches the specified arguments
是否有一個整潔,快捷的方式來解決這個問題?
乾杯
'我對這個搜索對象應用過濾和排序' - 你是通過多個字段排序的嗎?例如標題和優先權? – jammykam
@jammykam - 是的。我首先根據用戶選擇的標準對它們進行排序 - 如名稱,創建日期等。一旦我得到結果,我需要按優先級字段排序。 – NomadTraveler
您是分頁結果還是可以在獲得結果後訂購? –