欢迎来到悦读文库! | 帮助中心 分享价值,成长自我!
悦读文库

【ElasticSearch】ElasticSearch 中使用衰减函数来完美你的搜索结果

{

    "query":{

        // 使用得分函数

        "function_score":{

            // 查询的关键字

            "query":{

                "multi_match":{

                    // 关键字

                    "query":"博客",

                    // title 的权重是 body 的 "10"倍,具体可自行查阅官方文档的计算方式

                    "fields":[

                        "title^10",

                        "body"

                    ]

                }

            },

            // 函数得分如何作用于原始得分(这里是相乘)

            "boost_mode":"multiply",

            // 函数的总得分(现在是所有得分累加)

            "score_mode":"sum",

            "functions":[

                // 使用高斯函数, 原始日期是 2020-04-27

                // 距离原始日期 30 天之内的都能得到满分(以前未来日期都算),也就是 1

                // 距离原始日期 30 ~ 90 天的使用高斯函数得分

                // 距离原始日期超过 90 天(30+60) 的都得最低分,也就是 0.5

                {

                    "gauss":{

                        "created_date":{

                            "origin":"2020-04-27",

                            "offset":"30d",

                            "scale":"60d",

                            "decay":0.5

                        }

                    },

                    "weight": 1

                },

                // 使用线性函数,所有参数和高斯一致,只不过衰减程度不一样

                // 值的注意的是线性函数有可能得 0 分

                {

                    "linear":{

                        "hot_value":{

                            "origin":100,

                            "offset":10,

                            "scale":50,

                            "decay": 0.5

                        }

                    },

                    // 可设置函数的权重

                    "weight": 2

                }

            ]

        }

    }

}


分享到微信 分享到微博 分享到QQ空间

本文标签

关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2021 悦读文库网站版权所有

备案ICP备案号:京ICP备18064502号-6



收起
展开