score类型
- 基础评分boost,默认2.2,
- 逆向文档频率值(IDF):表示该词再文档中(ES中)出现的次数越多,表示越不重要,评分越低
- 关键词在文档中出现的频率(TF):表示该词在文档中出现的频率,频率越高表示越重要,评分越高
注意: IDF是出现次数越多,则评分越低, 而TF是出现次数越高,则评分越高,一正一反
score评分机制的计算
- boost × idf × tf
- 字段的权重 × 逆向文档频率的值 × 关键词在文档中出现的频率值
ES查询时带上评分计算
加上explain 和mysql查看索引使用情况是同一个词
GET /test_index/_search?explain=true
如何自定义评分机制
- 权重配置: 通过指定boost基础评分,来定制总评分, 查询请求如下,需要指定boost,来定制哪个词查询基础分更大,即相同频率下该次就会评分更高,会放在前面
GET /test_index/_search
{
"query": {
"bool": {
"should": [
{
"match": {
"summary": {"query": "boot", "boost": 1} // 指定查boot的基础评分boost = 1, 不指定boost则默认2.2
}
},
{
"match": {
"summary": {"query": "java", "boost": 3} // 指定查boot的基础评分boost = 3, 不指定boost则默认2.2
}
},
{
"match": {
"summary": {"query": "cloud", "boost": 1} // 指定查boot的基础评分boost = 1, 不指定boost则默认2.2
}
},
{
"match": {
"summary": {"query": "spring", "boost": 1} // 指定查boot的基础评分boost = 1, 不指定boost则默认2.2
}
},
]
}
}
}
- 公式定制化: ES提供了一些内置评分函数(BM25), 根据需要进行参数调整,或者使用自定义评分函数来实现
- 自定义评分插件
文章来源地址https://www.toymoban.com/news/detail-639068.html
文章来源:https://www.toymoban.com/news/detail-639068.html
到了这里,关于【HBZ分享】ES的评分score机制的原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!