我是靠谱客的博主 大方金鱼,最近开发中收集的这篇文章主要介绍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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部