【Elasticsearch系列廿二】特殊参数
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
- 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
- 导航
- 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
- 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
- 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
- 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
- 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
- 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
博客目录
- 1.max_shards_per_node
- 2.python api
- 3.fuzziness
- 4.\_score
- 5.minimum_should_match
- 6.embedding_dim
1.max_shards_per_node
在 Elasticsearch 中,max_shards_per_node
是一个集群级别的设置,用于限制每个节点上可以打开的最大分片数。这个设置有助于防止单个节点上分片数量过多,从而可能导致性能问题或资源耗尽。默认情况下,Elasticsearch 集群的每个节点可以有 1000 个分片,但这个数字可以根据需要进行调整。
临时设置:
PUT /_cluster/settings
{"transient": {"cluster": {"max_shards_per_node": 10000}}
}
永久设置:
PUT /_cluster/settings
{"persistent": {"cluster": {"max_shards_per_node": 10000}}
}
2.python api
# 指定参数分页查询
from elasticsearch import Elasticsearch
es = Elasticsearch()
query = {"query": {"match_all": {}}
}
response = es.search(index="db01_v1_20240903", body=query, from_=0, size=10)
3.fuzziness
在 Elasticsearch 中,fuzziness
是一个用于模糊查询的参数,它允许在搜索时指定一个编辑距离,即允许用户输入与索引中的单词有一定差异的查询词,依然能够匹配到相应的文档。这个参数主要用于处理用户输入错误或拼写变体的情况。
fuzziness
可以设置为以下值:
- 数值:如
0
、1
、2
,表示允许的最大编辑操作次数。数值越大,匹配的结果可能会越多,但同时查询性能可能会下降。 - AUTO:这是一个特殊的设置,它会根据查询词的长度自动调整编辑距离。通常,对于长度小于等于 2 的词,编辑距离设置为 0;长度在 3 到 5 之间的词,编辑距离设置为 1;长度大于 5 的词,编辑距离设置为 2。这个设置可以通过
AUTO:[low],[high]
的格式进行自定义,其中low
和high
分别表示词长范围的下限和上限。
例如,如果你想要在搜索时允许一个编辑错误,可以这样设置:
{"query": {"match": {"field": {"query": "search_term","fuzziness": 1}}}
}
或者使用 AUTO
:
{"query": {"match": {"field": {"query": "search_term","fuzziness": "AUTO"}}}
}
需要注意的是,模糊查询虽然可以提高用户体验,但可能会对性能产生影响,因为它需要额外的处理来生成和匹配可能的变体词。因此,在性能敏感的应用中应谨慎使用。
4._score
{"took": 1,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 2,"relation": "eq"},"max_score": 2.137549,"hits": [{"_index": "book","_type": "_doc","_id": "3","_score": 2.137549,"_source": {"name": "spring开发基础","description": "spring 在java领域非常流行,java程序员都在用。","studymodel": "201001","price": 88.6,"timestamp": "2019-08-24 19:11:35","pic": "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg","tags": ["spring", "java"]}},{"_index": "book","_type": "_doc","_id": "2","_score": 0.57961315,"_source": {"name": "java编程思想","description": "java语言是世界第一编程语言,在软件开发领域使用人数最多。","studymodel": "201001","price": 68.6,"timestamp": "2019-08-25 19:11:35","pic": "group1/M00/00/00/wKhlQFs6RCeAY0pHAAJx5ZjNDEM428.jpg","tags": ["java", "dev"]}}]}
}
结果分析:
-
建立索引时, description 字段 term 倒排索引
-
java 2,3
-
程序员 3
-
-
搜索时,直接找 description 中含有 java 的文档 2,3,并且 3 号文档含有两个 java 字段,一个程序员,所以得分高,排在前面。2 号文档含有一个 java,排在后面。
5.minimum_should_match
minimum_should_match
是 Elasticsearch 中布尔查询(Boolean Query)的一个重要参数,它用来指定在执行查询时,should 子句至少应该匹配的子句数量或百分比。这个参数可以是具体的数字,也可以是百分比,或者它们的组合。
-
具体数字:如果
minimum_should_match
设置为一个整数,它表示至少需要匹配的 should 子句的数量。例如,如果有 4 个 should 子句,设置为 2 意味着文档必须至少满足其中的 2 个子句。 -
百分比:如果设置为百分比,它表示至少需要匹配的 should 子句的百分比。例如,如果有 6 个 should 子句,设置为 “50%” 意味着至少需要匹配 3 个子句(6 的 50%向下取整)。
-
组合使用:可以使用百分比和固定值的组合,如 “3<90%”,表示至少需要匹配 3 个子句或总数的 90%(以较大者为准)。
-
默认值:如果 bool 查询包含至少一个 should 子句,而没有 must 或 filter 子句,则
minimum_should_match
的默认值为 1。这意味着至少有一个 should 子句需要匹配。如果 bool 查询中包含 must 或 filter 子句,则minimum_should_match
的默认值为 0,意味着 should 子句可以不满足任何条件。 -
特殊语法:可以使用特殊的语法来更精确地控制匹配条件,例如 “2<-25% 9<-3”,这表示如果有 1 或 2 个子句,则都需要匹配;如果有 3-9 个子句,则需要匹配除了 25%之外的所有子句;如果有 9 个以上的子句,则需要匹配除了三个之外的所有子句。
这个参数的使用可以根据查询的具体需求来调整,以达到最佳的查询结果和性能平衡。正确使用 minimum_should_match
可以提高查询的准确性和召回率,使得搜索结果更加符合用户的预期。
6.embedding_dim
在 Elasticsearch 中,embedding_dim
是一个与向量搜索相关的参数,它指定了存储在dense_vector
字段中的向量的维度。这个参数在创建索引时定义,并用于指定向量字段的维度大小。当索引设置为 true 时,embedding_dim
的值不能超过 1024,当索引设置为 false 时,可以不超过 2048。这个值必须与后续写入的向量维度一致。
embedding_dim
参数直接影响搜索结果,因为它决定了文档向量在向量空间中的表示。在进行向量搜索时,Elasticsearch 会使用这个参数来计算查询向量与文档向量之间的相似度。例如,使用余弦相似度或欧几里得距离等度量标准来找到与查询向量最相似的文档向量。如果embedding_dim
设置不正确,可能会导致搜索结果的相关性降低,因为向量之间的比较可能不准确。
在实际应用中,embedding_dim
的选择取决于所使用的机器学习模型生成的向量维度。例如,如果使用 BERT 模型生成的向量是 768 维的,那么在 Elasticsearch 中创建索引时,embedding_dim
应该设置为 768,以确保文档向量可以正确存储和检索。
例如,如果你使用 BERT 模型、GloVe、Word2vec 或者 ChatGPT Embedding API 等将文本转换为向量,你需要在创建索引时指定dims
参数,其值应与生成的向量维度相匹配。这样,Elasticsearch 就可以正确地存储和索引这些向量,以便进行高效的相似度搜索。
在实际应用中,embedding_dim
参数的使用可以帮助实现语义搜索,通过比较查询向量和文档向量的相似度来检索文档,从而提供更加相关和准确的搜索结果。这种基于向量的搜索方法可以用于各种应用场景,如图像搜索、音乐推荐、文本分类等。
觉得有用的话点个赞
👍🏻
呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
相关文章:

【Elasticsearch系列廿二】特殊参数
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

Java笔试面试题AI答之设计模式(2)
文章目录 6. 什么是单例模式,以及他解决的问题,应用的环境 ?解决的问题应用的环境实现方式 7. 什么是工厂模式,以及他解决的问题,应用的环境 ?工厂模式简述工厂模式解决的问题工厂模式的应用环境工厂模式的…...

54 循环神经网络RNN_by《李沐:动手学深度学习v2》pytorch版
系列文章目录 文章目录 系列文章目录循环神经网络使用循环神经网络的语言模型困惑度(perplexity)梯度剪裁 循环神经网络 使用循环神经网络的语言模型 输入“你”,更新隐变量,输出“好”。 困惑度(perplexityÿ…...

数据仓库-数据质量规范
一、 数据质量系统概述 1.1 数据质量管理系统1.2 数据质量建设流程1.3 数据质量标准二、 数据质量管理规则 2.1 数据校验规则列表 2.1.1 数据量2.1.2 数据量对比2.1.3 空值检查2.1.4 值域检查2.1.5 规范检查2.1.6 逻辑检查2.1.7 重复数据检查2.1.8 及时性检查...

PostgreSQL 17 发布了!非常稳定的版本
📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、My…...

【Python】执行脚本的时,如何指定运行根目录,而不是指定脚本的父级目录
author: jwensh & gpt date: 2024.09.23 python 执行脚本的时,如何指定运行根目录,而不是指定脚本的父级目录 prompt:python 执行脚本的时候,如何指定他的运行根目录,而不是指定脚本的父级目录 在执行 Python 脚…...

JVM(HotSpot):程序计数器(Program Counter Register)
文章目录 一、内存结构图二、案例解读三、工作流程四、特点 一、内存结构图 二、案例解读 我们使用javap对字节码进行反编译,来看下程序计数器怎么体现的。 IDEA写一个简单的Java代码 反编译命令 javap -verbose InitTest.class $ javap -verbose InitTest.clas…...

等保托管怎么样,流程是什么样的?
随着信息技术的快速发展,网络安全问题愈发凸显。为了保护信息系统的安全,国家推出了网络安全等级保护制度(简称“等保”),企业在面对这一制度的同时,也逐渐意识到等保托管的重要性。等保托管旨在通过专业的…...

【HTML】img标签和超链接标签
文章目录 img 标签src 属性alt 属性title 属性width/height 属性border 属性 超链接标签:a表格标签合并单元格 img 标签 img 是一个单标签 src 属性 img 标签必须搭配 src 使用(指定图片的路径) 相对路径: ./xxx.png./img/xxx.…...

智能PPT行业赋能用户画像
智能PPT市场在巨大的需求前景下,已吸引一批不同类型的玩家投入参与竞争。从参与玩家类型来看,不乏各类与PPT创作有关的上下游企业逐步向智能PPT赛道转型进入,也包括顺应生成式AI技术热潮所推出的创业企业玩家。当前,智能PPT赛道发…...

学习C++的第七天!
1.虚函数是在基类中用 virtual 关键字声明的函数,可以在派生类中被重写。纯虚函数是在虚函数的基础上,在基类中被初始化为 0 的函数,含有纯虚函数的类是抽象类,不能被实例化。 2.如果基类的析构函数不是虚函数,当通过…...

Java编程必备:五大高效工具与框架
作为一位Java程序员,在编写Java代码时,通常会使用多种工具和框架来提高开发效率、保证代码质量并简化开发流程。以下是五个常用的Java程序员工具和框架及其简要说明: 1. IntelliJ IDEA 主要功能:IntelliJ IDEA是一个强大的Java集…...

现代桌面UI框架科普及WPF入门1
现代桌面UI框架科普及WPF入门 文章目录 现代桌面UI框架科普及WPF入门桌面应用程序框架介绍过时的UI框架MFC (Microsoft Foundation Class)缺点 经典的UI框架**WinForms****QT****WPF** 未来的UI框架**MAUI****AvaloniaUI** WPF相对于Winform,QT,MFC的独立…...

in和like性能对比
场景: 有个问题表,有个渠道表,问题和渠道的关系是一对多 需要根据渠道查询问题,暂时两种思路 1:问题表荣誉渠道id,多个id拼接 2:设计问题和渠道关联关系表 首先,这两种是常用的设计思路,那么查询谁的速度快 问题表:造10w数据,渠道表造100条数据 结论 实测10次后,发现like耗…...

Redis|基础学习
跟着狂神学习的Redis笔记,详细课程可以移步【狂神说Java】Redis最新超详细版教程通俗易懂 文章目录 NoSQLNoSQL 数据库的主要类型NoSQL 的特点NoSQL 的应用场景 Redis什么是 RedisRedis 能干嘛Windows 以及 Linux 下安装 RedisRedis 基本知识RedisKey的基本命令Redi…...

手把手教你在Linux上构建Electron
开发electron最大的特点就是可以使用web技术来开发跨平台应用,大部分开发都是在windows/mac上开发的electron应用,我使用的是electorn-builder来构建应用,官网提供支持在windows上使用docker来实现Linux版本的构建。可以直接在Linux服务器上完…...

力扣【448-消失的数字】【数组-C语言】
题目:力扣-448 给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。 把数组中存在[1…n]的元素放其元素值-1的位置上,第一个fo…...

面试题:排序算法的稳定性?(文末有福利)
回归面试题! 回答重点 稳定的排序算法:冒泡排序、插入排序、归并排序、计数排序。 不稳定的排序算法:选择排序、快速排序、堆排序、希尔排序。 扩展知识 1)冒泡排序(Bubble Sort) 原理: 冒…...

在Jdk1.8中Collectors和Comparator使用场景
在Jdk1.8中Collectors和Comparator使用场景 Collectors 和 Comparator 是 Java 8 引入的两个非常重要的类,它们在处理集合和流(Streams)时起着重要的作用。以下是这两个类的使用场景以及它们的典型用法。 1. Collectors Collector…...

linux-性能优化命令
top 我们先来说说top命令用法,这个命令对于我们监控linux性能是至关重要的,我们先来看看展示结果。 top - 15:20:23 up 10 min, 2 users, load average: 0.39, 0.53, 0.35 Tasks: 217 total, 1 running, 216 sleeping, 0 stopped, 0 zombie %C…...

基于MT79815G CPE 板子上挂usb3.0的5G 模块,WIFI能跑多少速度呢
关于MT79815G CPE 板子上挂usb3.0的5G 模块,WIFI能跑多少速度的问题,我们以启明智显 ZX7981P智能无线接入型路由器(CPE)挂广合通5G模组为例说明: 一般来说,用 ZX7981P,通过软加速,U…...

R包compareGroups详细用法
compareGroups compareGroups 是一个功能强大的 R 包,专为数据质量控制、数据探索和生成用于出版的单变量或双变量表格而设计。它能够创建各种格式的报表,如纯文本、HTML、LaTeX、PDF、Word 或 Excel 格式,并显示统计数据(均值、…...

如何选择高品质SD卡
如何选择高品质SD卡 SD卡(Secure Digital Memory Card)是一种广泛使用的存储器件,因其快速的数据传输速度、可热插拔的特性以及较大的存储容量,广泛应用于各种场景,例如在便携式设备如智能手机、平板电脑、运动相机等…...

C++学习:模拟priority_queue
一:仿函数 开始模拟前咱先了解一下仿函数。有了它,我们就可以自己传个代码让优先级队列升序还是降序,自己模拟时也不用在需要升序降序时改代码。这是个很有用的东西。 不写模版也可以,但模版能用在更多地方嘛 template <class …...

同程旅行对标拼多多:“形似神不似”
文:互联网江湖 作者:刘致呈 业绩好,并不意味着同程旅行就能高枕无忧了。 最近,媒体曝出:有用户在同程旅行APP上预订酒店,在预订成功并付款后,结果第二天却被酒店告知,没有查到相关…...

HOJ网站开启https访问 申请免费SSL证书 部署证书详细操作指南
https://console.cloud.tencent.com/ 腾讯云用户 登录控制台 右上角搜SSL 点击 SSL证书 进入链接 点申请 免费证书 有效期3个月 (以后每三个月申请一次证书 上传) 如果是腾讯云申请的域名 选 自动DNS验证 自动添加验证记录 如果是其他平台申请域…...

程序设计基础I-实验4 循环结构之for语句
7-1 sdut-C语言实验-AB for Input-Output Practice (Ⅳ) Your task is to Calculate a b. 输入格式: Your task is to Calculate a b. 输出格式: For each pair of input integers a and b you should output the sum of a and b in one line, and with one line of out…...

深入工作流调度的内核
在大数据时代,工作流任务调度系统成为了数据处理和业务流程管理的核心组件,在大数据平台的构建和开发过程中尤为重要。随着数据量的激增和业务需求的多样化,合理的任务调度不仅能够提高资源利用率,还能保证业务流程的稳定和高效运…...

vue3中动态引入组件并渲染组件
在开发中 有时会在打包或者各种可能的情况下 报错或警告提示 模块化打包的问题, 我们需要动态引入组件并渲染组件时,可以使用import引入 如下举例 import { ref, markRaw } from vue const childrenComponent ref(); onMounted(() > {//举例引入一个…...

【艾思科蓝】网络安全的隐秘战场:构筑数字世界的铜墙铁壁
第七届人文教育与社会科学国际学术会议(ICHESS 2024)_艾思科蓝_学术一站式服务平台 更多学术会议请看:https://ais.cn/u/nuyAF3 目录 引言 一、网络安全:数字时代的双刃剑 1.1 网络安全的定义与重要性 1.2 网络安全威胁的多元化…...