我正在使用提升项目的solr seach在sitecore 7.2。我在Boost值中增加了值,然后重建了索引,那么如何通过提升值对结果项进行排序呢?我试过这样做:
var dataQuerycontext.GetQueryable<SearchResultItem>()
....
dataQuery = dataQuery.OrderByDescending(i => i["score"]);
var results = dataQuery.GetResults().Hits.Select(h => h.Document);但这不管用。似乎商店总有价值是1
发布于 2016-01-20 13:50:43
在使用SOLR时,索引时间增加似乎不起作用,因为Sitecore使用标准查询参数编写查询。要使查询在索引时使用给定给项的boost,则需要使用DISMAX或EDISMAX查询。目前,Sitecore还没有被设置为这样做。
所以你必须在查询的时候做你的提升。
此外,您的订单按分数是不需要的,从.GetResults()的结果应该已经排序的分数。如果没有,则应该使用.Score列表的Hits值。
var dataQuerycontext.GetQueryable<SearchResultItem>()
.where(x => (x.MyField == "myvalue").Boost(2f)
... more query options ...
)
....
var results = dataQuery.GetResults().Hits
.OrderByDescending(h => h.Score).Select(h => h.Document);这将提高查询中的字段。
https://stackoverflow.com/questions/34893353
复制相似问题