在 sitecore v7 中使用 Boosting item solr 进行排序

Sorting with Boosting item solr in sitecore v7

我在 sitecore 7.2 中使用 solr 搜索的增强项。我在 Boost Value 中添加了值,然后重建索引,那么如何通过提升值对结果项进行排序? 我试过那样 :

var dataQuerycontext.GetQueryable<SearchResultItem>()
....
dataQuery = dataQuery.OrderByDescending(i => i["score"]);
var results = dataQuery.GetResults().Hits.Select(h => h.Document);

但它不起作用。似乎商店的价值总是 1

将 Sitecore 与 SOLR 结合使用时,索引时间提升似乎不起作用,因为 Sitecore 使用标准查询参数编写查询。对于在索引时使用给予项目的提升的查询,它需要使用 DISMAXEDISMAX 查询。目前,Sitecore API 未设置为执行此操作。

因此您必须在查询时进行提升。

此外,不需要按分数排序,.GetResults() 的结果应该已经按分数排序。如果不是,您应该使用 Hits 列表的 .Score 值。

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);

这将增加查询中的字段。