Elasticsearch深度探秘搜索技术基于tie_breaker参数优化dis_max搜索效果

news/2024/7/7 5:54:06 标签: elasticsearch, java, 大数据

接着…

java_beginner_1">搜索title或content中包含java beginner的帖子
GET /post/_search
{
    "query": {
        "dis_max": {
            "queries": [
                { 
                  "match": { 
                    "title": "java beginner" 
                  }
                },
                { 
                  "match": { 
                    "content":  "java beginner" 
                  }
                }
            ]
        }
    }
}

有些场景不是太好复现的,因为是这样,你需要尝试去构造不同的文本,然后去构造一些搜索出来,去达到你要的一个效果

可能在实际场景中出现的一个情况是这样的:
(1)某个帖子,doc1,title中包含java,content不包含java beginner任何一个关键词
(2)某个帖子,doc2,content中包含beginner,title中不包含任何一个关键词
(3)某个帖子,doc3,title中包含java,content中包含beginner
(4)最终搜索,可能出来的结果是,doc1和doc2排在doc3的前面,而不是我们期望的doc3排在最前面

dis_max,只是取分数最高的那个query的分数而已。

dis_max只取某一个query最大的分数,完全不考虑其他query的分数
使用tie_breaker将其他query的分数也考虑进去

tie_breaker参数的意义,在于说,将其他query的分数,乘以tie_breaker,然后综合与最高分数的那个query的分数,综合在一起进行计算

除了取最高分以外,还会考虑其他query的分数
tie_breaker的值,在0~1之间,是个小数,就ok

GET /post/_search
{
    "query": {
        "dis_max": {
            "queries": [
                { 
                  "match": { 
                    "title": "java beginner" 
                  }
                },
                { 
                  "match": { 
                    "content":  "java beginner" 
                  }
                }
            ],
            "tie_breaker": 0.3
        }
    }
}


http://www.niftyadmin.cn/n/23968.html

相关文章

《C++ primer plus》第13章:类继承(2)

文章目录继承:is-a 关系多态公有继承开发 Brass 类和 BrassPlus 类继承:is-a 关系 派生类和基类之间的特殊关系是基于 C 继承的底层模型的。实际上,C有3种继承方式:公有继承、保护继承和私有继承。公有继承是最常用的方式&#x…

Python 二维码的读取与生成:使用链接生成二维码、读取二维码里的链接

Python 二维码的读取与生成演示① 使用链接生成二维码② 读取二维码里的链接[ 文章推荐 ] Python 绘制中国地图:使用 pyecharts 最新版本绘制中国地图实例详解,个性化地图定制及常用参数解析 ① 使用链接生成二维码 通过 pip install qrcode 安装 qrco…

调整网关或iptables导致ssh连接未响应

同一子网之间可以相互连接,问题服务器可以通过同一子网的其他机器ssh连接,通过VPN可以直接连接到同一子网的其他服务器,但是无法直接连接问题服务器 ssh连接一直停在连接状态 xshell连接如图 问题服务器A无法上外网,之前调整过网…

qq录制视频保存到哪了?如何更改qq录屏存储位置

一、查看qq录制视频保存位置如果有录制视频的需求,相信大部分人都是使用qq自带的录屏功能来录制视频。那qq录屏后的视频在哪里去找?今天就给大家分享如何查看qq录制完的视频保存位置操作方法:第一步:电脑上登录qq,在qq…

Rust入门(五):数据结构与泛型

rust提供了多种数据结构来帮助存储数据,他们都是可变长度的集合 Vector vector 允许我们以可变长度存储一系列相同的值,类似于可变长度的数组,它在创建时需要指定存储的数据的类型,或者指定初始值使得编译器能够分析出其中存储的…

栈和队列(内附模拟实现代码)

一,栈1.1 栈的概念栈是一种线性表(是一种特殊的线性表),栈只允许在固定一端进行插入和删除元素。插入元素的一端称为栈顶,另一端称为栈底。所以栈中的数据元素满足先进后出(First In Last Out)的…

elasticsearch基础(一)

一、初识elasticsearch 1. 了解ES 1.1 什么是elasticsearch elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。 elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。…

关于yum源的总结

博客主页:https://tomcat.blog.csdn.net 博主昵称:农民工老王 主要领域:Java、Linux、K8S 期待大家的关注💖点赞👍收藏⭐留言💬 目录1 相关概念1.1 rpm与yum1.2 yum源与repo文件2 yum源的种类2.1 官方源2.…