如何从分数计算中取出(别名字段的长度)



>假设我们有一个带有他们的名字和别名数组的文档,如下所示:

{
name: "Christian",
aliases: ["נוצרי", "کریستیان" ]
}

假设我有一个有 10 个别名的文档,另一个有 2 个别名的文档 但它们都包含值为کریستیان的别名。

第一个文档的length of field (dl)大于第二个文档 因此,第一个文档的term frequency (tf)低于第二个文档。最终,别名较少的文档的分数大于另一个。

有时我想为不同语言和不同形式的人添加更多别名,因为他/她更出名,但这会导致结果得分较低。我想以某种方式从查询的计算中取出length of the aliases field

规范 存储字段的相对长度。

字段有多长?字段越短,权重越高。 如果术语出现在短字段中,例如标题字段,则 该字段的内容可能与该术语有关,而不是 同样的术语出现在一个更大的身体领域。

可以使用 PUT 映射 API 禁用规范

PUT my_index/_mapping
{
"properties": {
"title": {
"type": "text",
"norms": false
}
}
}

进一步研究的链接

  1. https://www.elastic.co/guide/en/elasticsearch/guide/current/scoring-theory.html#field-norm

最新更新