
ElasticSearch
文章平均质量分 95
ElasticSearch
01Byte空间
做过开发,创过业,踩过坑。从Java后台开发,PL/SQL开发,Pro*C开发,到shell脚本,再到兼职开发的MySQL DBA。
为人友善诚恳,工作踏实,吃苦耐劳,富有朝气,激情,以及团队合作意识。
专注后端技术:Java、Shell、Socket、MySQL、Oracle、Linux、中间件、分布式、微服务。偶尔扯扯淡、分享技术干货。
https://github.com/zhouxx1055
https://zhouxx.blog.youkuaiyun.com/
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
科普文:Elasticsearch系列之【Elasticsearch实操:from/size,scroll、search after三种分页汇总】
from + size(浅分页)原理:通过指定from(起始偏移量)和size(每页大小)来分页。默认from为0,size为10。优点:简单直观,易于理解。缺点:当from值很大时,性能会显著下降,因为Elasticsearch需要从每个分片中获取指定数量的文档,然后在协调节点进行全局排序以获取最终的结果。这会导致大量的网络传输和CPU/内存消耗。不适合处理大量数据或深度分页的情况。适用场景:适用于数据量较小或不需要深度分页的场景。scroll。原创 2024-10-16 17:32:11 · 1475 阅读 · 0 评论 -
科普文:Elasticsearch系列之【Elasticsearch实操:分布式实时搜索和分析引擎】
索引模板,简而言之,是一种复用机制,就像一些项目的开发框架如 Laravel 一样,省去了大量的重复,体力劳动。一个模板可能绝大部分符合新建索引的需求,但是局部需要微调,此时,如果复制旧的模板,修改该模板后,成为一个新的索引模板即可达到我们的需求,但是这操作略显重复。所谓集群脑裂,是指 Elasticsearch 集群中的节点(比如共 20 个),其中的 10 个选了一个 master,另外 10 个选了另一个 master 的情况。删除原来的索引,重新建立索引,;索引模板是有序合并的。原创 2024-10-16 15:18:01 · 712 阅读 · 0 评论 -
科普文:Elasticsearch系列之【Elasticsearch实操:基于Kibana Lens进行数据可视化,灵活分析航班信息】
完成以上操作后,您已经成功创建了检索分析服务Elasticsearch版实例,并登录Kibana添加了样例数据。iii. 在弹出的对话框中,去掉默认的IP地址后(默认禁止所有IP地址访问),将待访问设备的公网IP地址添加至白名单中。4. 在顶部菜单栏,选择购买实例时所配置的地域,本教程为华北2(北京)。1. 在Elasticsearch实例列表中,单击目标实例ID,进入实例管理页面。实例创建后,大约需要5分钟生效。未续费的实例将在到期7天后被释放,释放后数据将被永久删除,无法恢复。原创 2024-10-16 15:05:39 · 771 阅读 · 0 评论 -
科普文:Elasticsearch系列之【哈啰出行:漫谈两轮调度 ES 优化之路】作者|郭佳雄
我们发现在站点画像构建初期,为了通用性的查询功能,对所有的字段添加了mapping,初步统计发现有282个复杂类型索引(text、integer、float、date、geo_point等) +67个keyword,同时也有很多不需要检索的字段也加上mapping,猜测这么多冗余索引优化完之后应该有很不错的效果。我们这边有c端红包车推荐的场景,红包车的意思是用户可以通过系统推荐的闲置率较高的车骑行到缺口较多的站点,获取相应的金额,对于c端用户来说,低耗时是必要的,耗时需要控制在50ms以内。原创 2024-10-16 15:00:39 · 823 阅读 · 0 评论 -
科普文:Elasticsearch系列之【Elasticsearch实操:聚合查询分析bucket、metric、pipeline】
Aggregation聚合的分三类:桶(Bucket)聚合:用来对文档做分组TermAggregation:按照文档字段值分组,例如按照品牌分组、按照城市分组DateHistogram:按照日期阶梯分组,例如一周为一组,或者一月为一组参加聚合的字段必须是keyword、日期、数值、布尔类型度量(Metric)聚合:用以计算一些值,例如最大值、最小值、平均值等Avg:求平均值Max:求最大值Min:求最小值Stats:同时求Max、Min、Avg、Sum等管道(pipeline)聚合:原创 2024-10-16 12:14:49 · 1051 阅读 · 0 评论 -
科普文:Elasticsearch系列之【Elasticsearch实操:实时数据分析与预测】
实时分析特点数据流(Data Streams):能够处理连续的数据流输入。低延迟存储:提供低延迟的数据存储和查询。集成 Flink:与 Flink 集成,进行流处理和实时分析。实时分析应用场景实时监控系统业务分析物联网(IoT)数据处理Elasticsearch实时分析通常涉及以下步骤:数据采集:确保你的数据被索引到Elasticsearch。数据清洗和预处理:如果需要,对数据进行清洗和预处理。定义指标和分析:选择合适的Elasticsearch聚合查询来计算所需的指标。实时响应:通原创 2024-10-16 06:01:48 · 740 阅读 · 0 评论 -
科普文:Elasticsearch系列之【Elasticsearch实操:商品价格区间统计与筛选】
Elasticsearch 在全文检索场景中表现出色,具备强大的可扩展性和快速搜索能力。它允许用户执行复杂的查询,并几乎实时地获得响应。Elasticsearch 的聚合功能特别适合用于统计类场景。在价格筛选应用中,range聚合能够实时计算各个价格区间的商品数量,配合过滤查询实现快速筛选。这种机制不仅响应速度快,还能动态适应不断变化的数据规模,保持较高的用户体验。原创 2024-10-16 05:52:03 · 853 阅读 · 0 评论 -
科普文:Elasticsearch系列之【Elasticsearch实操:地理位置搜索】
Elasticsearch 支持通过地理空间索引和搜索来处理地理数据。这对于需要管理和可视化地理信息的应用程序(如地图服务和基于位置的服务)非常有用。Elasticsearch 内置的geo_point类型和相关的地理位置查询功能,非常适合用于位置相关的业务场景。通过geo_distance查询,平台可以迅速筛选出与用户距离较近的餐馆,并进行距离排序,提升用户体验。此外,Elasticsearch 能够轻松扩展到全球范围内的位置数据应用,具有极高的灵活性和扩展性。原创 2024-10-16 05:44:53 · 864 阅读 · 0 评论 -
科普文:Elasticsearch系列之【Elasticsearch实操:个性化推荐系统】
利用Elasticsearch构建一个基于标签的兴趣推荐系统。我们将使用Elasticsearch作为搜索引擎和存储引擎,通过索引和搜索标签信息来实现推荐功能。Elasticsearch 的More Like This查询非常适合用于相似内容推荐的场景,能够根据用户的兴趣偏好进行相关视频的推荐。其高效的索引和查询机制,加上支持复杂的查询组合,使得推荐系统既能保持较高的实时性,又能根据动态数据调整推荐结果。原创 2024-10-16 05:37:01 · 1670 阅读 · 0 评论 -
科普文:Elasticsearch系列之【Elasticsearch实操:日志收集与分析】
它是 Elastic 技术栈(Elasticsearch、Logstash、Kibana)的关键组件,该技术栈在管理系统和应用日志以识别问题和监控系统健康方面非常流行。原创 2024-10-16 05:25:25 · 1488 阅读 · 0 评论 -
科普文:Elasticsearch系列之【Elasticsearch实操:全文搜索与高亮显示】
,"mate70, 非凡大师"},"name": {},通过同义词分析器,用户搜索“ huawei mate”时也可以匹配到包含“mate”的文档,从而进一步提升搜索的准确性。小结一下通过上述步骤,我们可以实现一个完整的 Elasticsearch 全文搜索与高亮显示的功能。这个功能适用于电商平台、博客搜索、文档系统等多种业务场景,提供快速、高效、用户友好的搜索体验。原创 2024-10-16 05:14:33 · 831 阅读 · 0 评论 -
科普文:Elasticsearch系列之【图解Elasticsearch六大顶级核心应用场景】
Elasticsearch六大应用场景说明:全文检索、实时分析、机器学习、地理数据应用、日志分析、安全信息管理。原创 2024-10-16 05:06:33 · 1057 阅读 · 0 评论 -
科普文:软件架构Elasticsearch系列之【2024年8月30日 Shay:Elasticsearch is Open Source, Again】
2021 年 1 月,当时 Elastic 公司决定把 Elasticsearch 和 Kibana 的许可证从 Apache 2.0 变更为 Elastic License 2.0(ELv2)和 Server Side Public License(SSPL)双许可。尽管这两个许可证也允许源代码公开,但它们并不符合开源倡议组织(OSI)的开源定义。“任何改变都会带来一些质疑,当然也会引来一些挑剔者。原创 2024-09-02 15:15:59 · 1468 阅读 · 0 评论 -
科普文:Elasticsearch系列之【从源码详解Elasticsearch启动过程】
从上面的步骤可以看出Elasticsearch的单节点启动过程还是很复杂的,而且文章只是列出了大概的启动步骤,还有很多细节没有深挖,比如节点和集群的相互发现与加入,节点间的数据同步,集群master是如何选举的等。细节还需各位读者深读源码。原创 2024-08-17 21:59:30 · 1470 阅读 · 0 评论 -
科普文:Elasticsearch系列之【Elasticsearch架构设计原则与反模式】
在分析了大型银行、大型安全管理服务提供商和大型酒店机构的实际案例后,我们可以总结出一些在大规模 Elasticsearch 集群设计中的关键经验和最佳实践。低热节点分片数(Low hot node shard counts):实际案例表明,保持较低的热节点分片数有助于提高集群的稳定性和重启速度。通过合理配置热节点的分片数量,可以确保在高负载数据写入和查询场景下,集群能够高效运行。温节点使用较少(Warm nodes are rarely used):在大规模观测(o11y)和安全场景中,温节点的使用较少。原创 2024-08-17 21:52:24 · 1097 阅读 · 0 评论 -
科普文:Elasticsearch系列之【结合稀疏、密集和地理字段进行综合检索】
Elasticsearch 是一个强大的工具,可以近实时地搜索和分析数据。作为开发,我们经常会遇到包含各种类型字段的数据集。有些字段是必需的,或者包含了大量数据,而有些字段则几乎没有数据。那些有很多缺失值的字段称为“稀疏”字段,而那些大多数值都存在的字段称为“密集”字段。当然,还有表示地理位置数据的地理字段。在本文中,我们将探讨如何查询包含各种字段的数据。我们将研究稀疏、密集和地理字段的集成,以增强搜索功能。我们会通过动手示例(使用我最喜欢的books。原创 2024-08-17 21:49:15 · 539 阅读 · 0 评论 -
科普文:Elasticsearch系列之【Elasticsearch核心配置与性能调优】
由于Elasticsearch需要同时处理大量的文件和网络连接,因此可能会遇到文件描述符耗尽的情况,这会导致新的连接无法建立或索引操作失败。这是因为Lucene使用的数据结构(如FSTs)在内存中的表现与JVM的垃圾回收机制有关,过大的堆内存设置可能导致长时间的垃圾回收停顿。因此,需要根据实际情况进行权衡和调整。通过对Linux系统的内存、文件描述符、网络、I/O、CPU和线程、JVM和GC、集群和分片、监控和日志记录以及安全性等方面的优化设置,可以显著提升Elasticsearch集群的性能和稳定性。原创 2024-08-17 21:42:21 · 963 阅读 · 0 评论 -
科普文:微服务之全文检索SpringBoot整合ElasticSearch说明
Java Low Level REST Client:ES官方的低级客户端。低级别的客户端通过http与Elasticsearch集群通信。Java High Level REST Client:ES官方的高级客户端。基于上面的低级客户端,也是通过HTTP与ES集群进行通信。它提供了更多的接口。下面介绍下SpringBoot如何通过elasticsearch-rest-high-level-client工具操作ElasticSearch。原创 2024-08-07 03:10:50 · 1152 阅读 · 0 评论 -
科普文:微服务之全文检索ElasticSearch 集群的搭建
说明:elasticsearch表示运行的用户,如果你的当用户是es,那么前缀就是es,不一定和我一样,hard与soft表示限制的类型,nofile表示max number of open file descriptors,65536表示设置的大小。ElasticSearch 是以集群的方式运行的,而节点是组成ES集群的基本单位,所以每个 ElasticSearch 实例就是一个节点,每个物理机器上可以有多个节点,使用不同的端口和节点名称。如果你目前使用的是root账户,那么启动会报下面的错误。原创 2024-08-07 03:08:58 · 877 阅读 · 0 评论 -
科普文:微服务之全文检索ElasticSearch 集成IK分词器
IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始IKAnalyzer已经推出 了3个大版本。最初,它是以开源项目Lucene为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer3.0则发展为 面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。1)采用了特有的“正向迭代最细粒度切分算法“,具有60万字/秒的高速处理能力。原创 2024-08-07 03:07:19 · 609 阅读 · 0 评论 -
科普文:微服务之全文检索ElasticSearch 高级查询DSL操作
因为这是elasticsearch在内部对文档做分词的时候,对于中文来说,就是一个字一个字分的,例如:'I Love You',此时会被分为三个词分别是:I、Love、You,而中文也是一样的,例如:‘我爱中国’,会被分词为:我、爱、中、国。注意:需要分词的字段不可以直接排序,比如:text类型,如果想要对这类字段进行排序,需要特别设置:对字段索引两次,一次索引分词(用于搜索)一次索引不分词(用于排序),es默认生成的text类型字段就是通过这样的方法实现可排序的。上例中,首先匹配查询所有的数据。原创 2024-08-07 03:06:21 · 1140 阅读 · 0 评论 -
科普文:微服务之全文检索ElasticSearch忝删改查详细操作说明
RESTFul:Representational State Transfer,中文意思:表现层状态转化。变现层指的是资源的表现层,这里的资源是指网络上的信息,比如一张图片,一段文本,一步电影,那么每个资源在网络上都有一个标识,可以理解为一个ID,每个资源都有一个ID去表示它,这个ID就称之为URL。当我们给了这个资源一个地址后,比如我们经常说的URL,我们就能访问这个资源。表现层状态转化:我们平时访问一个网站,其实就是客户端和服务端的一种互动过程,有了互动,这个数据的状态肯定会发生改变。原创 2024-08-07 03:03:45 · 1127 阅读 · 0 评论 -
科普文:微服务之全文检索ElasticSearch详细安装说明
X-Pack 已经作为 Elastic 公司单独的产品线,提供安全性,警报,监视,报告,机器学习和许多其他功能,有着非常强大的功能。从6.3版本和 7.1 开始, X-Pack 默认包含在 Elasticsearch、Kibana 和 Logstash 中,所以无需再次安装,并且基础级安全永久免费,比如 用户登录权限校验等基础功能,当然也有付费的功能,但是我们用免费的就足够了。用户角色elastic超级管理员apm_systemAPM服务器在Elasticsearch中存储监视信息时使用。原创 2024-08-07 03:01:50 · 1379 阅读 · 0 评论 -
科普文:微服务之全文检索ElasticSearch概念介绍
(简称ES)是一个基于构建的开源、分布式、RESTful接口的全文搜索引擎,通过对Lucene的封装,隐藏了复杂性,提供了使用简单的。还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,因为对文档进行了分词处理。ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据,可以在极短的时间内存储、搜索和分析大量的数据。是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。原创 2024-08-07 02:59:50 · 1169 阅读 · 0 评论 -
实战:ElasticSearch索引管理和映射详解(补充)
静态信息不可更改,如索引的分片数。这个类比存在一个严重的问题,就是当多个mapping type中存在同名字段时(特别是同名字段还是不同类型的),在一个索引中不好处理,因为搜索引擎中只有 索引-文档的结构,不同映射类别的数据都是一个一个的文档(只是包含的字段不一样而已)如果别名logs_write指向的索引是7天前(含)创建的或索引的文档数>=1000或索引的大小>= 5gb,则会创建一个新索引 logs-000002,并把别名logs_writer指向新创建的logs-000002索引。原创 2024-07-30 08:27:01 · 1053 阅读 · 0 评论 -
实战:ElasticSearch 索引操作命令(补充)
同时,旧版本文档被标记为删除,同理,该文档可以被搜索到,只是最终被过滤掉。合并的过程实际上是创建了一个新的 segment,当新 segment 被写入磁盘,所有被合并的旧 segment 被清除。这个节点的任务是广播查询请求到所有相关分片,并将它们的响应整合成全局排序后的结果集合,这个结果集合会返回给客户端。可以认为一个对文档的操作一旦写入磁盘便是安全的可以复原的,因此只有在当前操作记录被写入磁盘,分片仅会返回一个轻量级的结果给协调节点,包含结果集中的每一个文档的 ID 和进行排序所需要的信息。原创 2024-07-30 08:03:12 · 2501 阅读 · 0 评论 -
实战:安装ElasticSearch 和常用操作命令
在 Elasticsearch 中,索引是由一个或多个分片组成的。每个分片是一个完整的 Lucene 索引,独立存储数据并执行搜索操作。通过分片,Elasticsearch 可以将数据分布到多个节点上,从而提高系统的吞吐量和容错能力。原创 2024-07-30 07:50:05 · 1140 阅读 · 0 评论 -
科普文:深入理解ElasticSearch体系结构
es自带如下的分词器StandardSimpleWhitespaceStopKeywordPatternLanguage默认分词器其组成如下,特性为:按词切分,支持多语言小写处理其组成如下,特性为:按照非字母切分小写处理其组成如下,特性为:按照空格切分Stop Word指语气助词等修饰性的词语,比如the、an、的、这等等其组成如图,特性为:相比Simple Analyzer多了stop Word处理。原创 2024-07-30 01:17:14 · 4439 阅读 · 0 评论 -
科普文:RedSearch全文搜索
RediSearch是一个Redis模块,为Redis提供查询、二次索引和全文搜索。要使用RediSearch,首先要在Redis数据上声明索引。然后可以使用重新搜索查询语言来查询该数据。RedSearch使用压缩的反向索引进行快速索引,占用内存少。RedSearch索引通过提供精确的短语匹配、模糊搜索和数字过滤等功能增强了。原创 2024-07-22 02:59:24 · 951 阅读 · 0 评论 -
科普文:登录系统演进、便捷登录设计与实现
随着互联网、物联网和移动终端等技术的迅猛发展,登录认证面临着新的挑战和需求。虽然登录认证在信息系统中是传统且古老的组成部分,但未来的发展前景依然广阔。不论是用户登录、PC端、移动端还是智能设备的访问,身份认证在保障业务操作安全、资金安全、系统间通信和与外部系统集成等多个方面起到至关重要的作用。随着认证方式的不断演进,从最初的cookie和session,发展到如今的多端登录、多因子认证以及API令牌等多种认证手段。同时,用户终端设备的不断升级也推动着认证方式和手段的不断创新。原创 2024-07-21 06:11:17 · 1208 阅读 · 0 评论 -
科普文:百度交易中台之商品推广流程构建以及实现
上面只是列举的一些大的问题点,放到细节之上,还有许多前台看不到的,但是很影响体验的问题,比如流量主命中有效推广之后,是需要分配佣金的,这部分佣金的计算如何实现,分配后的佣金又如何能实实在在的变成流量主的收入?但是,抛开挑战不说,从交易中台开始构建CPS推广体系,起步就是站在巨人的肩膀上的。用户界面部分,则和广告主类似,商品、订单的界面依赖于百度小程序进行展示,这样的设计方便于在百度APP产品矩阵内进行共享,在技术实现上,广告主的商品界面,只需要开发一次,即可在所有的百度生态内APP上进行展示以及推广。原创 2024-07-21 06:06:31 · 1315 阅读 · 0 评论 -
科普文:百度交易中台之账房系统架构浅析
早期帐房系统使用商户ID作为routing,在一定程度上提升了查询的效率,但是随着业务的增加,出现了热点商户的问题,导致了es数据倾斜问题,从而引起了一些问题,后续进行了数据的迁移,不再使用资金池id作为routing,而是使用系统默认的文档id作为routing。帐房系统以资金池流水数据为主,根据流水类型的不同,补充了来自其他不同系统的数据,丰富该条流水的信息,来满足业务侧查询的需求,补充的数据存储在es以及数据库中,针对热点的数据,系统使用LoadingCache本地缓存的方式提升处理速度。原创 2024-07-21 06:03:20 · 1244 阅读 · 0 评论