本文介绍了Sitecore Solr 搜索得分值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试获取每个返回结果项的分数值,但问题是所有项都返回相同的分数值.我正在使用从 sitecore 6.6 升级的 sitecore 7.2 站点.我使用的是 solr 版本 4.10.2-0

I am trying to get the score value for each returned result item but the problem is all items returned the same score value. I am using sitecore 7.2 site which was upgraded from sitecore 6.6. I am using solr version 4.10.2-0

以下是我使用的代码:

var contentPredicate = PredicateBuilder.True<customSearchResultItem>();
contentPredicate = contentPredicate.And(p => p.Content.Matches(SearchKey.Boost(1.0f)));

IQueryable<SearchResultItem> query = context.GetQueryable<customSearchResultItem>().Where(contentPredicate);

var hits =  query.GetResults().Hits;

foreach (var item in hits)
{
    scores.Add(item.Score);
}

如果有什么遗漏,你能告诉我吗?或者是否应该应用任何配置来使其工作?

Would you please advise if something is missing? or if there are any configuration that should be applied to make this work?

推荐答案

应存在以下内容以应用 boosting 功能并相应地对项目进行排序:

The following should be exist to apply boosting feature and sorting items accordingly:

  • 搜索应该有多个子句,否则检索到的项目将具有相同的分数值
  • 当搜索包含多个子句(谓词)时,它们将对分值具有相同的权重,除非应用 boost 方法.Boost(10.0f).
  • 子句之间的组合应该是OR",否则返回的项目必须匹配所有要检索的谓词,这意味着相同的分数值.

这篇关于Sitecore Solr 搜索得分值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-23 20:06