>假设我们有一个带有他们的名字和别名数组的文档,如下所示:
{
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
}
}
}
进一步研究的链接
- https://www.elastic.co/guide/en/elasticsearch/guide/current/scoring-theory.html#field-norm