我有一个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
您是分页结果还是可以在获得结果后订购? –