ES搜索引擎入门+最佳实践(六)

本文介绍了ES的搜索排序功能,包括设置搜索权重、function score查询、script score查询和二次打分。通过调整boost参数、使用boosting查询、自定义script_score函数以及运用衰减函数等,实现更灵活的文档评分和排序。文章还探讨了重新打分的策略,以提高搜索效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        ES在搜索和数据分析中的应用越来越广泛,在之前项目中对ES的使用有些心得,最近有不少朋友和同事都问到了ES,刚好最近也有些时间,所以打算通过8~10篇文章介绍下ES.(其实我也不知道最终会写下多少篇),为了保持阅读的连贯性,可以先看前面几篇文章:

ES搜索引擎入门+最佳实践(一)_flame.liu的博客-优快云博客

ES搜索引擎入门+最佳实践(二)_flame.liu的博客-优快云博客

ES搜索引擎入门+最佳实践(三)_flame.liu的博客-优快云博客

ES搜索引擎入门+最佳实践(四)_flame.liu的博客-优快云博客

ES搜索引擎入门+最佳实践(五)_flame.liu的博客-优快云博客

一.概要

         本篇文章会向大家介绍ES的搜索排序功能,在进行搜索的时候,ES可以给搜索结果打分,并且根据打分的高低进行排序.这里提到的打分涉及到搜索算法,搜索算法有很多种,ES常用的是BM25算法,在大多数情况下我们并不需要深究这个算法内部是怎么样的,只需要知道如何利用这些算法达到我们的目的.所以我打算从以下几个方面介绍ES的搜索排序功能的运用.先来看看见到介绍,再一步步慢慢了解.

        1) 设置权重:通过多条件搜索时,可以增加核心关键词的权重,以此提高核心词相关度排名.

        2) function score 查询:function score查询中提供了一些函数,在多条件查询中通过这些函数可以更加灵活的给文档评分.

        3) script score 查询:script score查询允许编写脚本的方式给文档进行打分.

        4) 二次打分:当查询大量文档时,如果需要给每个文档都进行评分,那么性能消耗肯定是很大的,所以可以先筛选出部分文档,再根据这部分文档进行打分和排序.

        下面这个表列出了本章使用到的ES的关键词

ES关键词
关键词 说明
boost 搜索权重值,默认为1,因为与参数"相当"于一个乘积关系,所以当取值为(0~1)时,相当于降权,大于1时权重提升.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值