1

我正在探索相关信息以获取有关影响 Marklogic 评分的因素的信息。

<qry:relevance-info xmlns:qry="http://marklogic.com/cts/query">
  <qry:score
    formula="(256*scoreSum/weightSum)+(256*qualityWeight*documentQuality)"
    computation="(256*1274/4)+(256*1*0)">81536</qry:score>
..
</qry:relevance>

有人知道 weightSum 因子吗?

Marklogic 考虑计算 weightSum 值的因素是什么。

4

1 回答 1

1

使用权重影响分数

在查询子表达式中使用权重来提高或降低子表达式对相关性分数的贡献。

例如,您可以为叶级cts:query构造函数指定权重,例如cts:word-queryand cts:element-value-query;有关详细信息,请参阅XQuery 和 XSLT 参考指南。您还可以在等效的 Search API 抽象中指定权重,例如结构化查询构造value-queryword-constraint-query,或者在查询选项中定义单词或值约束时。

默认权重为 1.0。使用以下指南选择自定义权重:

  • 要提高分数贡献,请将权重设置为高于 1.0。
  • 要降低分数贡献,请将权重设置在 0 到 1.0 之间。
  • 要对分数没有任何贡献,请将权重设置为 0。
  • 要使分数贡献为负,请将权重设置为负数。

分数是标准化的,所以权重不是分数的绝对乘数。相反,权重表示与同一表达式中的其他子表达式相比,给定查询子表达式中的词项被加权了多少。权重为 2.0 会使与该查询匹配的术语对分数的贡献加倍。同样,权重为 0.5 会使与该查询匹配的术语对分数的贡献减半。在某些情况下,分数会达到最大值,因此 2.0 的权重和 20,000 的权重可以对分数产生相同的贡献。

如果您在查询表达式中有多个组件,并且您希望表达式的某些部分的匹配项比其他部分的权重更大,则添加权重特别有用。有关这方面的示例,请参阅增加某些术语的分数,降低其他术语的分数

于 2019-06-23T12:43:31.530 回答