我使用的是Sitecore 8 MVC .net 4.5。我有布尔字段是赞助商,我需要订购所有项目,例如第一个字段是赞助商=真实和相关性。我发现如果我通过Is_Sponsored添加订单我失去相关性订单。所以我的问题是:有没有办法在现有订单中包含相关性?
答案 0 :(得分:2)
如果您只有有限数量的文件,上述方法将正常工作,因为您必须阅读索引中的所有文件。
您可以按字段SCORE排序以按排序排序 - 因此您的排序顺序为isSponsered,SCORE。这应该是我记得的 - 但我没有验证它。
其他 - 更多的解决方案,你将有很多选择来解决这个问题。
答案 1 :(得分:1)
您可以跳过查询中的布尔检查,并运行具有正确相关性顺序的常规查询。然后将布尔值下的结果集过滤到两个单独的集合中。
var results = queryable.Where(predicate).ToList();
然后:
var sponsored = results.Where(i => i.IsSponsored);
var notSponsored = results.Where(i => !i.IsSponsored);
然后加入收藏。