我是靠谱客的博主 大方金鱼,这篇文章主要介绍Elasticsearch--constant_score,现在分享给大家,希望可以做个参考。

constant_score的用处

当我们不关心检索词频率TF(Term Frequency)对搜索结果排序的影响时,可以使用constant_score将查询语句query或者过滤语句filter包装起来。

检索词频率:检索词在该字段出现的频率。出现频率越高,相关性也越高。字段中出现过5次要比只出现过1次的相关性高。

假设存在如下类型的文档:

{ "description": "wifi wifi garden pool" }

查询语句如下:

{
    "query":{
        "bool":{
            "should": [
                { "constant_score": {
                      "query": { "match": { "description": "wifi" }} }},
                { "constant_score": {
                      "query": { "match": { "description": "garden" }} }},
                { "constant_score": {
                      "query": { "match": { "description": "pool" }} }}
              ]
        }
    }
}

因为不考虑检索词频率,所以匹配文档的score等于该文档含有的不同检索词汇的个数。

score受到协调因子boost的影响:

{ "constant_score": {
    "boost":2,
    "query": { "match": { "description": "pool" }}
}}

出现pool的文档score加2。

score还需要考虑反向文档频率IDF的影响,最后得分可以不是整数。

反向文档频率:每个检索词在索引中出现的频率。频率越高,相关性越低。 检索词出现在多数文档中会比出现在少数文档中的权重更低, 即检验一个检索词在文档中的普遍重要性。

最后

以上就是大方金鱼最近收集整理的关于Elasticsearch--constant_score的全部内容,更多相关Elasticsearch--constant_score内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(123)

评论列表共有 0 条评论

立即
投稿
返回
顶部