Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sitecore Solr搜索分数值_Solr_Sitecore_Sitecore7 - Fatal编程技术网

Sitecore Solr搜索分数值

Sitecore Solr搜索分数值,solr,sitecore,sitecore7,Solr,Sitecore,Sitecore7,我试图为每个返回的结果项获取分数值,但问题是所有项都返回相同的分数值。我正在使用sitecore 7.2站点,它是从sitecore 6.6升级而来的。我使用的是solr版本4.10.2-0 以下是我正在使用的代码: var contentPredicate=PredicateBuilder.True(); contentPredicate=contentPredicate.And(p=>p.Content.Matches(SearchKey.Boost(1.0f)); IQueryable q

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

以下是我正在使用的代码:

var contentPredicate=PredicateBuilder.True();
contentPredicate=contentPredicate.And(p=>p.Content.Matches(SearchKey.Boost(1.0f));
IQueryable query=context.GetQueryable().Where(contentPredicate);
var hits=query.GetResults().hits;
foreach(点击中的var项目)
{
分数。添加(项目分数);
}

如果少了什么东西,请你告诉我好吗?或者,如果需要应用任何配置来实现此目的?

在Sitecore知识库中有一篇与此相关的帖子,指出命中分数将乘以0,因此所有结果都具有相同的分数

这篇文章是关于Lucene的,但我相信它也与Solr有关

解决

  • 在Sitecore中导航到
    /sitecore/templates/System/templates/Sections/index
    section
  • 为此节创建标准值项
  • 在上述标准值项目的
    Boost value
    字段中输入值1
  • 保存、发布和重新索引

  • 由于您的实例是升级版6.6,在ContentSearch存在之前,标准值既不存在,也不在升级脚本中创建。

    应存在以下内容,以便相应地应用增强功能和排序项:

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

    分数的值是多少?您是否尝试过不同的
    SearchKey
    值?您是否可以尝试使用
    p.Content.Contains
    p.Content.Like
    并查看它们是否返回不同的分数?分数值根据关键字搜索而变化,因为结果项将不同,但对于一个项目,它始终是相同的值返回的所有项目:现在是1.811966Marek::我尝试了不同的搜索键,值将被更改,但所有项目的值仍然相同。我尝试了两个子句,并且每个项目的得分值都不同。现在的问题是,我是否要根据一个字段来衡量搜索的准确性,例如字段中的匹配数(内容)是否可以使用boosting进行此操作?如果没有,是否有其他方法?最后,是否要显示百分比,以指示基于内容字段上的关键字搜索的结果项的准确性?我尝试了此操作,但所有项的值都相同:好的,我尝试了两个子句,现在每个项的分数值不同,现在的问题是,我是否想根据一个字段来衡量搜索的准确性,例如字段中的匹配数(内容)是否可以使用boosting进行此操作?如果不可以,是否有其他方法进行此操作?最后,是否希望显示百分比以指示基于内容字段上的关键字搜索的结果项的准确性?