- 博客(87)
- 资源 (1)
- 收藏
- 关注

原创 ES 性能调优,这可能是全网最详细的 Elasticsearch 性能调优指南
Elasticsearch 读写性能调优ES 架构和Mapping优化
2022-04-11 17:45:44
15624
4

原创 认知篇:Elastic认证工程师,完全解读
Elastic认证是什么?Elastic认证,即:Elastic Certified Engineer(Elastic认证工程师),官方的解释是Elastic官方推出的对于Elasticsearch技术的专家认证。国内多位一线大厂高级架构师、CTO都表示对此认证十分认可。认证者需要通过ELastic官方的认证专家考试,费用为400美元。用一句话来概括,就是用400美元证明你很屌(前提是通过考试)。证书就是下面这个样子:官方FAQ地址:https://www.elastic.co/cn/trainin
2021-08-22 14:03:41
8280
7
原创 ES 使用 Bucket Sort 对聚合结果分页
在这个例子中,我们首先使用 “terms” 聚合按照 “product_name” 字段进行分桶,并设置 “size” 为 5,以获取前 5 个产品。然后,在每个桶内部,使用 “bucket_sort” 对桶进行排序,根据 “sales_amount” 字段的值进行降序排序。Bucket Sort 和 Top Hits 有相似之处,他们之间的区别是:Bucket 是对聚合分桶的排序和分页,而 Top Hits 是对分桶聚合中每个桶里相关文档的聚合和排序。
2023-06-02 17:33:53
21
原创 ES中使用 Top Hits 查询分桶聚合结果的每个桶的详细数据
Top hits(顶部命中)是一个聚合功能,用于在查询结果中返回每个桶(bucket)中的顶部 N 个文档。这对于需要在聚合结果中查看每个桶中的最相关或最高评分文档的情况非常有用。简单来说,Top Hits 就是对聚合结果中相关文档的详细展示,它不同于 Post Filter,Post Filter 是基于源数据的查询,和 Agg 没有因果关系,其结果不对 Aggs 产生任何影响。Top Hits 则是基于 Aggs 的结果的查询,其受到 Aggs 结果的影响。
2023-06-02 17:28:12
13
原创 ES 布尔查询中 minimum_should_match 参数使用避坑
在 Elasticsearch (ES) 中,布尔查询(Boolean Query)是一种查询类型,它允许你组合多个查询子句以控制搜索结果的匹配逻辑。minimum_should_match 是布尔查询中一个重要的参数,用于指定至少应该匹配的子句数量。minimum_should_match 的值可以是一个具体的数字,也可以是一个百分比。它的具体含义取决于查询中的 should 子句的数量。当 minimum_should_match 是一个整数时,它表示至少需要匹配的 should 子句数量。
2023-05-09 12:53:49
119
1
原创 第八章 查询和检索:Query DSL
支持通配符,但是这种方式不推荐,因为 mapping 不可变bool:可以组合多个查询条件,bool 查询也是采用 more_matches_is_better 的机制,因此满足 must 和 should 子句的文档将会合并起来计算分值bool query 多用于多条件组合查询。
2023-04-22 16:30:48
425
原创 Term Suggester 中 suggest_mode 的三种模式missing、popular、always 的区别
term suggester 正如其名,只基于 tokenizer 之后的单个 term 去匹配建议词,并不会考虑多个term之间的关系。
2023-04-20 10:27:19
323
原创 在 CentOS 7 中打开放指定或特定端口号
以上步骤可以帮助您在 CentOS 7 中开放指定端口号。注意,开放端口可能会增加服务器的安全风险,因此在进行端口开放时,务必只开放必要的端口,并遵循网络安全最佳实践。参数指定了要开放的端口号和协议(这里是。参数指定了防火墙区域,通常使用。参数表示将修改永久保存。
2023-04-18 10:48:25
538
原创 Elasticsearch 8.x 超100 小时:学前必读
本专栏为 B 站《Elasticsearch 8.x 100 小时+》课程中基础篇:应用技术和快速上手的配套教材,配套课程请联系本人领取。●基础篇-应用技术和快速上手:针对群体为在职者因业务或技术要求,迫切需要短时间内快速掌握上手和使用ES,其内容核心为:教会学生如何使用ES;●高级篇-底层原理与算法源码:主要针对的群体为希望在Elastic体系有深入学习和探索,或者有强化面试和底层原理、算法、源码需求的学生,其内核心为原理源码等理论技术。●运维篇-Elastic运维和安全。
2023-04-03 17:30:20
152
原创 Cron表达式
Cron表达式是一个用 6~7 个占位符表示的具有表述时间的表达式,一般用于执行定时任务或类似功能。其中x代表一个占位符,或称之为域。每两个占位符之间用空格隔开。{秒数} {分钟} {小时} {日期} {月份} {星期}{秒数} {分钟} {小时} {日期} {月份} {星期} {年份(非必填)}
2023-03-07 17:43:58
446
原创 第七章 分词器:Text Analysis
词项过滤器用来处理切词完成之后的词项,例如把大小写转换,删除停用词或同义词处理等。官方同样预置了很多词项过滤器,基本可以满足日常开发的需要。当然也是支持第三方也自行开发的。如果 ES 内置分词器无法满足需要,可以通过对切词器、词项过滤器、字符过滤器三个组件的自由组合来自定义分词器。Tokenizer:必须包含一个并且只能指定一个切词器,即必须指定分词器的切词规则。Token Filter:可以不指定词项过滤器,也可以指定多个词项过滤器。
2023-02-28 17:22:09
299
原创 ES 集群的健康值状态
绿色黄色红色新手误区:对不同健康状态下的可用性描述,集群不可用指的是集群状态为红色,无法提供完整读写服务,而不代表无法通过客户端远程连接和调用服务。
2023-02-17 10:34:12
431
原创 Mac 删除系统自带的 ABC 默认输入法
Mac 系统会自动保护期默认输入法,所以需要修改 MacOS 的保护机制,而这些信息保存在一个 .plis 文件中,我们需要对其进行修改,默认情况下这个文件是打不开的,所以需要借助 PlistEdit Pro 来打开它。打开之后如图,以此找到 Root -> AppleEnabledInputSources,在以 0、1、2 这些数字命名文件夹中依次点开,找到 value 值为 ABC 的项,并将其对应的以数字命名的文件夹删除,然后保存。⌘ + R(黑苹果为 win + R)输入终端回车打开终端。
2023-02-14 18:39:20
317
原创 第六章 映射:Mappings
ES 中的 mapping 有点类似与关系数据库中表结构的概念,在 MySQL 中,表结构里包含了字段名称,字段的类型还有索引信息等。在 Mapping 里也包含了一些属性,比如字段名称、类型、字段使用的分词器、是否评分、是否创建索引等属性,并且在 ES 中一个字段可以有对个类型。每个字段都有字段数据类型或字段类型。会被分词的字段类型和不会被分词的字段类型。会被分词的类型:text、match_only_text 等。不会被分词类型:keyword、数值类型等。
2022-12-11 16:34:25
959
原创 ES和 Spring Boot 以及 Spring Framework 兼容性列表
JDK 已经发布了最新的 JDK 19 的版本,Spring Boot 也已经更新到了 Spring Boot 3.0。随之而来的各个版本的兼容性的问题,下面我把各个版本的 Spring Boot、Spring Framework、Spring Data Elasticsearch 以及 Elasticsearch 的版本兼容性放在了下面的表格里
2022-12-07 15:54:19
475
原创 match_phrase 跨值查询中 position_increment_gap 参数用法
3.1 问题演示3.2 原因3.3 解决方案3.4 position_increment_gap 参数1、概述在 ES 中进行短语搜索的时候,为了防止跨值访问,ES 会在每个值之间设置间隙,而这个间隙的默认大小为 100。而这个值也就是 position_increment_gap。那么什么是跨值访问呢?2、match_phrase 短语搜索首先我们要理解 match_phrase 的匹配逻辑,match_phase 的匹配需要遵循以下三个条件match_phrase 会对搜索短语分词(误区)
2022-12-05 16:36:55
542
原创 动画演示选择排序(Selection Sort)
从数组中第一个数字开始,数组中每个数字都要和后面所有数字比一次大小,每每次循环遍历当前最小值,放在当前循环范围内的最小位置。当完成第N - 1次循环之后,排序完成。。
2022-11-29 04:30:58
612
原创 使用 elasticdump 跨版本迁移 ES 数据
1、elasticdump 用途介绍elasticdump 是一个在 Github 开源的 Elasticsearch 的数据迁移工具,项目 Github 地址:[传送门](Github 地址:https://github.com/elasticsearch-dump/elasticsearch-dump)elasticdump 支持跨版本导出和导入数据,用法简单,安装方便。elasti开发者用了下面一张图来形象的描述了 elasticdump 的作用elasticdump 具有以下特点安装方
2022-11-24 16:56:50
975
原创 第二章 环境的选择和安装
首先明确一点:我们的首要目的是要快速上手使用Elasticsearch(以下简称ES),安装和部署ES并非重点,企业中真正需要你去安装的可能性或者机会非常小。大家可以想一想,对于刚入职的你来说,公司内部一般来说都已经有了一套完整的技术架构,让你亲自动手搭建除非是公司架构重构或者你作为公司技术团队的核心或者运维。所以关于ES的安装,我们在基础篇不多做介绍,如果的确有需要,我会在进阶篇和运维篇,分别讲解基于CentOS、K8S搭建ES集群、部署ELK等从零到一完整详细讲解。建议大家跟随课程大纲学习,效率更高。
2022-11-13 23:02:56
389
原创 第一章 学前必读
推荐阅读认知篇:Elastic认证工程师,完全解读Elastic认证工程师考试课程,并不包含在 ES 8.x 体系课程范围之内,如需了解Elastic认证考试,课关注知识星球公众号或者下载“知识星球APP”索索Elastic开源社区免费加入了解,或者关注公众号Elasticsearch之家,回复关键字“认证考试”了解最新信息,目前百度上的内容基本上都是过时的,Elastic开源社区仅半年时间,就培养了近百位Elastic认证工程师。
2022-11-07 12:50:39
276
原创 ES中 minimum_should_match 的用法和误区
`minimum_should_match`参数指定should返回的文档必须匹配的子句的数量或百分比。如果bool查询包含至少一个should子句,而没有must或 filter子句,则默认值为1。否则,默认值为0
2022-10-28 21:04:31
1700
1
原创 Elasticsearch索引分片的数量及大小分配策略
Shard即数据分片,是ES的数据载体。在ES中数据分为primary shard(主分片)和replica shard(副本分片),每一个primary承载单个索引的一部分数据,分布于各个节点,replica为某个primary的副本,即备份。分片分配的原则是尽量均匀的分配在集群中的各个节点,以最大程度降低部分shard在出现意外时对整个集群乃至服务造成的影响。
2022-10-20 21:03:35
5736
原创 ES节点角色深层解读,及高可用集群架构角色设计
角色是ES节点的重要属性,属于Elasticsearch的重要基础概念。在高可用系统架构中,节点角色发挥着至关重要的作用。如果前期没有对业务系统和技术架构做足准备,没有充分考虑后期的扩展问题,势必会为将来的性能优化留下潜在问题。
2022-10-17 23:33:45
1563
1
原创 Elastic认证考试大纲(8.1版本)全方位分析(难度、考试频率、得分指数、综合分析等)
- 本文包含的考点**题型难度、考试频率、得分指数** 以及 **版本总结** 等信息均出自于对 **社区百余位认证工程师** 的考试复盘总结和归纳,信息均在文末为大家提供!- 本文提供的考试大纲为官方考纲汉化版(汉化版和开源社区整合版(推荐)
2022-10-15 00:28:57
774
原创 jdk(Windows/Mac含M1/M2 Arm原生JDK)安装,附各个版本JDK下载链接
Windows、Mac下JDK安装及配置含各个版本JDK下载链接含Arm原生JDK下载链接
2022-10-13 02:52:32
6469
2
原创 ES选举:Elasticsearch中Master选举完全解读
Master选举的意义在于集群主节点在遭遇宕机时保障服务的可用性。理解选举机制及相关算法,有利于了解ES底层的高可用原理,并学习及借鉴其设计思想。理解`Master选举`的另一个重要原因是:其为 ES 常见面试题之一!本文我将结合Elasticsearch源码、文字、绘图的方式剖析Master选举的完整过程。有任何问题,欢迎在社区群与我探讨。
2022-09-05 21:19:17
3342
1
原创 ES本地分片逆文档频率评分策略(Shard Local IDF)导致的评分异常原理解析
ES 本身通过 shard reblance 实现分片自动均衡策略,但是如果人工通过 routing 的方式分配数据,务必要保证数据按照某种机制,如分布式哈希表来控制数据的均衡分配,以避免这种情况的产生。对于_doc1和_doc11,两个文档词频都是1,他们在同一个索引,所以反词频一定相同,所以单就TF得分而言,这两个词得分肯定相同。对于生产环境,一般分布式数据库数据都不会太少,既然设计了多个分片,必然要考虑海量数据的情况。因此,对于上述问题,TF得分为常量,不是问题产生的主要原因。......
2022-08-29 14:50:02
475
原创 ES父子级关系Join类型的使用
连接数据类型是一个特殊字段,它在同一索引的文档中创建父/子关系。关系部分在文档中定义了一组可能的关系,每个关系是一个父名和一个子名。父/子关系可以定义如下。合适应用场景是:当索引数据包含一对多的关系,并且其中一个实体的数量远远超过另一个的时候。类型不能像关系数据库中的表链接那样去用,不论是。欢迎点击下方二维码关注作者。...
2022-08-26 14:56:15
442
原创 ES实现“小于XX时间”排前面(或后面)“大于XX时间”排后面(或前面)排序
比如有个字段是截止时间,如果过了截止时间,即逾期,否则未逾期。想对是否逾期排序,未逾期拍上面。这就是ES如何对不存在的逻辑字段排序问题。可以用 script 进行排序解决。
2022-08-25 19:38:11
1572
原创 ES中 Nested 类型的原理和使用
nested属于object类型的一种,是Elasticsearch中用于复杂类型对象数组的索引操作。Elasticsearch没有内部对象的概念,因此,ES在存储复杂类型的时候会把对象的复杂层次结果扁平化为一个键值对列表。
2022-08-24 17:05:37
4421
原创 倒排索引:ES倒排索引底层原理及FST算法的实现过程
这也许是你全网你能找到的最详细的倒排索引的底层解读。博主把倒排索引的讲解划分为以下七个部分,理解难度递增,可根据自身需要选择依次阅读或者针对性阅读。通常来说,应付一般的面试,理解第一部分即可。如果需要面试搜索相关业务的岗位,需要深层次理解倒排索引,可根据自身情况选择阅读。本文花费了作者大量的精力来论证和整理,如果你喜欢作者的文章,请帮忙点个赞和关注吧 O(∩_∩)O ~。谢谢大家的支持。提到ES,大多数爱好者想到的都是搜索引擎,尽管这是个误区,但是也不得不提。大数据搜索最重要的三个要素分别是 “快”、“准”
2022-08-08 22:01:30
6943
6
原创 倒排索引的数据结构:Term index、Term Dictionary、Posting List
每个Block内部又保存了Block Header、Suffix和Stats信息以及Metadatas信息,其中Block Header中存储了当前Block中的Pending Block和Pending Term的总计数,也就是EntryCount,Sufix则是保存了当前Block后缀的个数以及分别是什么,如block b的SufixLength=2,为f、g。Stats则保存了当前Term的词频和文档频率,参见org.apache.lucene.index.TermsEnum.TermStats。..
2022-08-08 22:00:28
1325
基于Java High Level Client的Elasticsearch客户端的常用操作代码
2022-04-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人