- 博客(97)
- 资源 (1)
- 收藏
- 关注
原创 Elasticsearch 8.x 超100 小时:学前必读
本专栏为 B 站《Elasticsearch 8.x 100 小时+》课程中基础篇:应用技术和快速上手的配套教材,配套课程请联系本人领取。●基础篇-应用技术和快速上手:针对群体为在职者因业务或技术要求,迫切需要短时间内快速掌握上手和使用ES,其内容核心为:教会学生如何使用ES;●高级篇-底层原理与算法源码:主要针对的群体为希望在Elastic体系有深入学习和探索,或者有强化面试和底层原理、算法、源码需求的学生,其内核心为原理源码等理论技术。●运维篇-Elastic运维和安全。
2023-04-03 17:30:20 1199 1
原创 ES 性能调优,这可能是全网最详细的 Elasticsearch 性能调优指南
Elasticsearch 读写性能调优ES 架构和Mapping优化
2022-04-11 17:45:44 26595 6
原创 认知篇: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 12252 12
原创 【开源社区】Elasticsearch(ES)中 exists 查询空值字段的坑
本文主要解决在 ES 中如何处理空只或者 NULL 值,如检索值为空的文档,如何存储空值或 NULL 值等。
2024-08-19 18:00:44 1226
原创 【开源社区】Elasticsearch(ES)中空值字段 null_value 及通过exists查找非空文档
字段,而此时源数据和搜索词都会被分词,如果给出了 null_value,ES 就不知道应不应该给这个 null_value 的值分词了,null_value 替换的原本就是索引数据,如果分词可能会影响搜索结果的准确性,使用户得到意想不到的结果,但是如果部分词又违背了 text 类型的设计理念和规则,因此选择了不支持。:在全文检索中,空值本来就会被作为停用词处理,在分词过程中就会被“干掉”,即便我们使用 term 做精准查询,不会被分词,空值也不会被创建索引,因此无法匹配到任何结果,这一点不同于关系数据库。
2024-08-09 10:29:04 1344
原创 06、三数之和:给你一个整数数组 nums ,请你返回所有和为 0 且不重复的三元组。
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。请你返回所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。
2023-11-04 21:54:58 819
原创 12、最小覆盖子串:给你一个字符串 s 一个字符串 t ,返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 ““ 。
给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。示例 1:示例 2:输入:s = “a”, t = “a”输出:“a”解释:整个字符串 s 是最小覆盖子串。示例 3: 输入: s = “a”, t = “aa”输出: “”解释: t 中两个字符 ‘a’ 均应包含在 s 的子串中,因此没有符合条件的子字符串,返回空字符串。如下图所示,最下方方块中的就是我们需要打掉的每个不同类型砖块(其实就是不
2023-11-04 17:33:50 418
原创 05、盛水最多容器:给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 返回容器可以储存的最大水量。
给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。
2023-11-03 22:34:50 557
原创 03、最长连续数列:给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。
2023-11-03 22:07:24 777
原创 04、移动零:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
2023-11-02 16:08:50 556
原创 02、字母异位词分组:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。中的字符串的的最大长度。需要用哈希表存储全部字符串。中的字符串的的最大长度。个字符串,对于每个字符串,需要。
2023-11-01 10:07:31 344
原创 01、两数之和:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。时间复杂度:O(N),其中 N 是数组中的元素数量。对于每一个元素 x,我们可以 O(1) 地寻找 target - x。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。空间复杂度:O(N),其中 N 是数组中的元素数量,主要为哈希表的开销。此题目要求返回的是两个符合要求的数组元素的下标,假设为。你可以按任意顺序返回答案。
2023-11-01 09:33:23 686
原创 第九章 聚合搜索: Aggregations
版权声明本文为Elastic开源社区版权所有,保证独立性和原创性,未获得授权和允许,任何组织和个人不得以任何方式传播或复制或分享。否则必将追究法律责任。知识内容输出不易,请尊重他人劳动成果。严禁随意传播、复制和盗用他人成果或文章内容用以商业或盈利目的!# 1、概述。
2023-06-11 09:08:35 1092
原创 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 2321 1
原创 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 2741 2
原创 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 3757 1
原创 第八章 查询和检索:Query DSL
支持通配符,但是这种方式不推荐,因为 mapping 不可变bool:可以组合多个查询条件,bool 查询也是采用 more_matches_is_better 的机制,因此满足 must 和 should 子句的文档将会合并起来计算分值bool query 多用于多条件组合查询。
2023-04-22 16:30:48 879
原创 Term Suggester 中 suggest_mode 的三种模式missing、popular、always 的区别
term suggester 正如其名,只基于 tokenizer 之后的单个 term 去匹配建议词,并不会考虑多个term之间的关系。
2023-04-20 10:27:19 741
原创 在 CentOS 7 中打开放指定或特定端口号
以上步骤可以帮助您在 CentOS 7 中开放指定端口号。注意,开放端口可能会增加服务器的安全风险,因此在进行端口开放时,务必只开放必要的端口,并遵循网络安全最佳实践。参数指定了要开放的端口号和协议(这里是。参数指定了防火墙区域,通常使用。参数表示将修改永久保存。
2023-04-18 10:48:25 3868
原创 Cron表达式
Cron表达式是一个用 6~7 个占位符表示的具有表述时间的表达式,一般用于执行定时任务或类似功能。其中x代表一个占位符,或称之为域。每两个占位符之间用空格隔开。{秒数} {分钟} {小时} {日期} {月份} {星期}{秒数} {分钟} {小时} {日期} {月份} {星期} {年份(非必填)}
2023-03-07 17:43:58 726
原创 第七章 分词器:Text Analysis
词项过滤器用来处理切词完成之后的词项,例如把大小写转换,删除停用词或同义词处理等。官方同样预置了很多词项过滤器,基本可以满足日常开发的需要。当然也是支持第三方也自行开发的。如果 ES 内置分词器无法满足需要,可以通过对切词器、词项过滤器、字符过滤器三个组件的自由组合来自定义分词器。Tokenizer:必须包含一个并且只能指定一个切词器,即必须指定分词器的切词规则。Token Filter:可以不指定词项过滤器,也可以指定多个词项过滤器。
2023-02-28 17:22:09 708
原创 ES 集群的健康值状态
绿色黄色红色新手误区:对不同健康状态下的可用性描述,集群不可用指的是集群状态为红色,无法提供完整读写服务,而不代表无法通过客户端远程连接和调用服务。
2023-02-17 10:34:12 1501
原创 Mac 删除系统自带的 ABC 默认输入法
Mac 系统会自动保护期默认输入法,所以需要修改 MacOS 的保护机制,而这些信息保存在一个 .plis 文件中,我们需要对其进行修改,默认情况下这个文件是打不开的,所以需要借助 PlistEdit Pro 来打开它。打开之后如图,以此找到 Root -> AppleEnabledInputSources,在以 0、1、2 这些数字命名文件夹中依次点开,找到 value 值为 ABC 的项,并将其对应的以数字命名的文件夹删除,然后保存。⌘ + R(黑苹果为 win + R)输入终端回车打开终端。
2023-02-14 18:39:20 1488
原创 第六章 映射:Mappings
ES 中的 mapping 有点类似与关系数据库中表结构的概念,在 MySQL 中,表结构里包含了字段名称,字段的类型还有索引信息等。在 Mapping 里也包含了一些属性,比如字段名称、类型、字段使用的分词器、是否评分、是否创建索引等属性,并且在 ES 中一个字段可以有对个类型。每个字段都有字段数据类型或字段类型。会被分词的字段类型和不会被分词的字段类型。会被分词的类型:text、match_only_text 等。不会被分词类型:keyword、数值类型等。
2022-12-11 16:34:25 1391
原创 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 1052
原创 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 1125
原创 动画演示选择排序(Selection Sort)
从数组中第一个数字开始,数组中每个数字都要和后面所有数字比一次大小,每每次循环遍历当前最小值,放在当前循环范围内的最小位置。当完成第N - 1次循环之后,排序完成。。
2022-11-29 04:30:58 807
原创 使用 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 1673
原创 第二章 环境的选择和安装
首先明确一点:我们的首要目的是要快速上手使用Elasticsearch(以下简称ES),安装和部署ES并非重点,企业中真正需要你去安装的可能性或者机会非常小。大家可以想一想,对于刚入职的你来说,公司内部一般来说都已经有了一套完整的技术架构,让你亲自动手搭建除非是公司架构重构或者你作为公司技术团队的核心或者运维。所以关于ES的安装,我们在基础篇不多做介绍,如果的确有需要,我会在进阶篇和运维篇,分别讲解基于CentOS、K8S搭建ES集群、部署ELK等从零到一完整详细讲解。建议大家跟随课程大纲学习,效率更高。
2022-11-13 23:02:56 619
原创 第一章 学前必读
推荐阅读认知篇:Elastic认证工程师,完全解读Elastic认证工程师考试课程,并不包含在 ES 8.x 体系课程范围之内,如需了解Elastic认证考试,课关注知识星球公众号或者下载“知识星球APP”索索Elastic开源社区免费加入了解,或者关注公众号Elasticsearch之家,回复关键字“认证考试”了解最新信息,目前百度上的内容基本上都是过时的,Elastic开源社区仅半年时间,就培养了近百位Elastic认证工程师。
2022-11-07 12:50:39 535
原创 ES中 minimum_should_match 的用法和误区
`minimum_should_match`参数指定should返回的文档必须匹配的子句的数量或百分比。如果bool查询包含至少一个should子句,而没有must或 filter子句,则默认值为1。否则,默认值为0
2022-10-28 21:04:31 4813 1
原创 Elasticsearch索引分片的数量及大小分配策略
Shard即数据分片,是ES的数据载体。在ES中数据分为primary shard(主分片)和replica shard(副本分片),每一个primary承载单个索引的一部分数据,分布于各个节点,replica为某个primary的副本,即备份。分片分配的原则是尽量均匀的分配在集群中的各个节点,以最大程度降低部分shard在出现意外时对整个集群乃至服务造成的影响。
2022-10-20 21:03:35 17666 7
原创 ES节点角色深层解读,及高可用集群架构角色设计
角色是ES节点的重要属性,属于Elasticsearch的重要基础概念。在高可用系统架构中,节点角色发挥着至关重要的作用。如果前期没有对业务系统和技术架构做足准备,没有充分考虑后期的扩展问题,势必会为将来的性能优化留下潜在问题。
2022-10-17 23:33:45 4101 1
原创 Elastic认证考试大纲(8.1版本)全方位分析(难度、考试频率、得分指数、综合分析等)
- 本文包含的考点**题型难度、考试频率、得分指数** 以及 **版本总结** 等信息均出自于对 **社区百余位认证工程师** 的考试复盘总结和归纳,信息均在文末为大家提供!- 本文提供的考试大纲为官方考纲汉化版(汉化版和开源社区整合版(推荐)
2022-10-15 00:28:57 1367
基于Java High Level Client的Elasticsearch客户端的常用操作代码
2022-04-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人