一张图30个知识点,全方位认知 Elasticsearch 技术发展

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
日志服务 SLS,月写入数据量 50GB 1个月
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 一张图30个知识点,全方位认知 Elasticsearch 技术发展

上图来自 Elastic 官方两位技术大佬朱杰老师和刘晓国老师的社群微信群中的分享。看到之后,非常有感触,并第一时间转发到技术群中。

Elasticsearch 自从推出以来,就不断引领搜索和分析技术的未来。它集成了众多的功能,不仅简化了大数据的处理,还通过不断的创新,提供了全面的解决方案。

Elasticsearch 创始人Shay Banon的“We’ve come a long way”——我把它翻译为:我们经历了长久的技术积累

从最初的版本到现在,Elasticsearch已经经历了重大的发展和变化。可以从如下几个维度展开解读:

  • 功能演进:Elasticsearch从基本的全文搜索引擎发展成为一个多功能、高度可扩展的实时搜索和数据分析平台。
  • 技术成熟:随着时间的推移,Elasticsearch 在性能优化、功能扩展和用户体验等方面不断成熟,证明了它能够适应不断变化的市场和技术需求。
  • 社区与生态:Elasticsearch的成功也得益于一个活跃的“开源”社区,以及围绕它构建的丰富插件和工具生态系统。
  • 实际应用:随着更多企业和开发者的采用,Elasticsearch 已在各种行业和应用场景中展示了其强大的实际应用价值。

应用场景可能包括实时日志分析、全文搜索、安全情报分析等,而实战中的挑战可能涉及数据规模的管理、集群的调优和安全配置等方面。“We’ve come a long way”不仅总结了Elasticsearch作为开源项目和商业产品走过的成功旅程,并且隐约展望了未来的更多可能性。

本文将带你全面了解上图提及的 Elasticsearch 的核心功能,每个功能点都将链接至官方的最新文档,并提供它们最早出现的版本号,以及一句话解读其功能、应用场景和实战注意事项。

1、倒排索引 (Inverted Index)

  • 官方文档链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html
  • 最早产生版本:0.90(可以理解为 long long ago,有官方文档记录的最早版本)
  • 功能解读:倒排索引是 Elasticsearch 进行快速全文搜索的核心数据结构。
  • 应用场景:任何需要快速检索关键字的应用,如文本搜索和文档检索。
  • 注意事项:倒排索引在高更新环境下可能会降低性能,适当优化索引策略是必要的。

2、全文搜索(Full-Text Search)

3、分词器(Analyzers)

4、Tokenizers

5、高亮(Highlighters)

  • 官方文档链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/highlighting.html
  • 最早产生版本:0.90
  • 功能解读:高亮显示器在搜索结果中标出匹配的词汇,帮助用户快速定位关键信息。(任何咱们常用搜索引擎都有这个功能)
  • 应用场景:在文本丰富的搜索结果中,高亮搜索词以提升可读性和信息检索速度。
  • 注意事项:确保高亮的字段被适当地分析,以防止标记错误的文本段落。

6、索引别名(Aliases)

7、聚合(Aggregations)

8、相关性评分(Relevance Scoring)

9、查询语言(Query DSL)

  • 官方文档链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html
  • 最早产生版本:0.90
  • 功能解读:查询领域特定语言(Query DSL)是 Elasticsearch 强大和灵活的查询语言,允许用户精确描述他们想要匹配的文档。
  • 应用场景:构建复杂查询,如布尔逻辑或嵌套查询(Nested 或者 Join)。
  • 注意事项:复杂的 Query DSL 可能导致查询性能下降,需要权衡查询复杂性和执行效率。
  • 特别说明:尽管现在 ES|QL看着很强大(参见下图,来自朱杰大佬发布),但早期的 Elastic 爱好者已经习惯使用 DSL。同意的同学可以留言说一下自己的观点哈。

10、地理空间搜索(Geo-spatial)

  • 官方文档链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/geo-queries.html
  • 最早产生版本:0.90
  • 功能解读:地理空间搜索使得地理位置数据的索引和查询变得简单有效。
  • 应用场景:地理信息系统(GIS)的数据检索,如本地服务查找、滴滴打车。
  • 注意事项:精确配置地理数据映射,以优化查询性能和精度。

11、地理位置匹配检索(Geo-matching)

12、Suggesters

13、同义词(Synonyms)

  • 官方文档链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-synonym-tokenfilter.html
  • 最早产生版本:1.0
  • 功能解读:同义词过滤器能使得相关词汇的搜索更加全面,提升了搜索结果的相关性。
  • 应用场景:改进产品搜索,用户即使输入了产品的别名也能得到正确的搜索结果(比如:su7、小米汽车目前是一回事)。
  • 注意事项:管理同义词列表,确保它们是准确且最新的,以防止不准确的搜索结果。

14、预查询器(Percolators)

15、安全性(Security)

16、字段级别安全(Field Level Security)

17、预处理器(Processors)

  • 官方文档链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest-processors.html
  • 最早产生版本:5.0
  • 功能解读:数据写入 Elasticsearch 前的预处理——处理器允许在文档索引前进行数据转换和增强。
  • 应用场景:数据清洗和转换,如日志格式化或丰富数据内容。
  • 注意事项:在 Ingest 节点上使用处理器会增加数据索引前的处理时间。
  • 特别说明:如果你还没有使用过这个功能,说明你的 Elasticsearch 版本太老了,快升级吧!

18、文档级别的安全(Document Level Security)

19、BKD Trees

  • 官方文档链接:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/documents-indices.html
  • 最早产生版本:不详
  • 功能解读:数值和地理字段被存储在BKD树中,BKD 树优化了多维数据的索引性能,提高了范围查询和地理空间查询的效率。官方原话“Elasticsearch 使用 Lucene 内的 BKD 树来存储地理空间数据。这样便能够高效地同时分析地理地点(经纬度)和地理形状(矩形和多边形)。
  • 应用场景:例如,找出所有数值在一定范围内的文档;例如,找出所有位于特定地理区域内的文档。
  • 注意事项:在处理非常大的多维数据集时,优化查询以避免性能瓶颈。

20、跨集群检索(Cross-cluster Search)

21、数据加密(Data Encryption)

  • 官方文档链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/secure-settings.html
  • 最早产生版本:6.0
  • 功能解读:Elasticsearch提供了在传输和静止时加密数据的能力,以防止数据泄露。
  • 应用场景:保护敏感数据,例如电子商务网站的用户信息和交易数据。
  • 注意事项:配置SSL/TLS来保护数据传输,并确保加密密钥的安全管理。就是解决“luo ”以及前文提及安全性问题。

22、向量字段(Vector Search)

23、KNN检索(KNN Search)

24、地理位置检索丰富(Geo-match Enrich)

  • 官方文档链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/geo-match-enrich-policy-type.html
  • 最早产生版本:7.5
  • 功能解读:Geo-match enrich 利用地理位置数据为查询结果添加上下文信息。
  • 应用场景:将地理位置用于个性化营销,如根据用户位置显示最近的商店。
  • 注意事项:确保地理数据的准确性和及时更新,以免影响个性化体验。
  • 补充说明:enrich 功能非常强大,我理解它是多字段融合的非常好用的工具。

25、异步搜索(Asynchronous Search)

26、异步索引(Asynchronous Indexing)

  • 官方文档链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html
  • 最早产生版本:7.9 (引入了异步执行特性的相关概念)
  • 功能解读:异步索引允许在后台执行索引操作,提高了大批量数据处理的效率。
  • 应用场景:批量处理大量文档,如日志文件或批量数据导入。
  • 注意事项:监控异步操作以防止队列堆积,确保资源有效使用。

27、运行时字段(Runtime Fields)

28、基于权限的搜索结果(Permission Based Search Result)

  • 解读:基于权限的搜索结果是指搜索返回的结果将根据用户的权限进行过滤,确保用户只能看到他们有权访问的信息。这一功能通过Elasticsearch 的安全特性实现,如文档级安全和字段级安全设置,它们允许对不同角色的用户定义不同的访问权限。
  • 应用场景:在多租户环境或需要保护敏感信息的应用中,基于用户角色过滤搜索结果,如企业内部知识库的访问控制。
  • 注意事项:正确配置和管理安全策略至关重要,需要确保权限设置准确反映了组织的安全和访问控制要求,同时还要注意性能影响,确保搜索效率。

29.语言识别(Language Identification)

  • 解读:语言识别是指自动检测文本数据的语言。Elasticsearch可以通过各种分析器支持多语言文本的处理,但直接的“语言识别”功能需要借助插件或外部工具来实现。一旦识别出文本的语言,就可以应用适当的分析器来处理文本,例如为英语文本使用英语分析器,为中文文本使用中文分析器。这对于构建多语言应用、提高搜索的准确性和相关性非常关键。
  • 应用场景:在处理用户生成的内容(UGC)或多语言网站时自动识别文本语言,应用正确的分析器以优化搜索和索引效果。
  • 注意事项:自动语言识别可能不总是100%准确,特别是对于包含混合语言或少量文本的数据,因此在应用前需要评估其准确性和可靠性。

30.小结

Elasticsearch的发展历程,从倒排索引到全文搜索,再到如今的向量搜索和KNN 检索,每一步都展现了其技术的深度积累和创新。

从分词器到安全性控制,从实时聚合到基于权限的搜索结果,不仅加深了Elasticsearch作为领先搜索和分析平台的地位,也彰显了其对未来挑战的前瞻性和解决能力。

这29个核心关键词(可能不全面)不仅是Elasticsearch技术进步的见证,更是 Elasticsearch 从搜索引擎到全面搜索分析平台长足进步的标志,预示着其在数据搜索和分析领域的持续领航和创新未来。

7 年+积累、 Elastic 创始人Shay Banon 等 15 位专家推荐的 Elasticsearch 8.X新书已上线

‍新书涵盖上述29个知识点‍


更短时间更快习得更多干货!

和全球 近2000+ Elastic 爱好者一起精进!

elastic6.cn——ElasticStack进阶助手

比同事抢先一步学习进阶干货!


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
7月前
|
安全 Linux 开发工具
Elasticsearch 搜索入门技术之一
Elasticsearch 搜索入门技术之一
257 1
|
2月前
|
存储 运维 监控
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
本文解析了Elasticsearch Serverless在智能日志分析领域的关键技术、优势及应用价值。
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
|
2月前
|
消息中间件 监控 关系型数据库
MySQL数据实时同步到Elasticsearch:技术深度解析与实践分享
在当今的数据驱动时代,实时数据同步成为许多应用系统的核心需求之一。MySQL作为关系型数据库的代表,以其强大的事务处理能力和数据完整性保障,广泛应用于各种业务场景中。然而,随着数据量的增长和查询复杂度的提升,单一依赖MySQL进行高效的数据检索和分析变得日益困难。这时,Elasticsearch(简称ES)以其卓越的搜索性能、灵活的数据模式以及强大的可扩展性,成为处理复杂查询需求的理想选择。本文将深入探讨MySQL数据实时同步到Elasticsearch的技术实现与最佳实践。
113 0
因为一个问题、我新学了一门技术 ElasticSearch 分布式搜索
这篇文章讲述了作者因为一个检索问题而学习了ElasticSearch技术,并分享了排查和解决ElasticSearch检索结果与页面展示不符的过程。
因为一个问题、我新学了一门技术 ElasticSearch 分布式搜索
|
4月前
|
运维 监控 数据可视化
Elasticsearch全观测技术解析问题之面对客户不同的场景化如何解决
Elasticsearch全观测技术解析问题之面对客户不同的场景化如何解决
|
6月前
|
索引 搜索推荐 缓存
使用Elasticsearch进行高效全文搜索的技术探索
【6月更文挑战第3天】本文探索了使用Elasticsearch进行全文搜索的技术,它基于Lucene,是一款开源、分布式搜索引擎。核心原理在于倒排索引,实现快速查找。全文搜索涉及安装配置、创建索引、索引文档、执行查询及处理结果。为了优化性能,可以调整索引映射、选择合适分析器、利用缓存及优化硬件配置。Elasticsearch因其高效性和灵活性在大数据时代广泛应用。
248 62
|
6月前
|
存储 监控 NoSQL
RedisSearch与Elasticsearch:技术对比与选择指南
RedisSearch与Elasticsearch:技术对比与选择指南
|
6月前
|
缓存 监控 索引
Elasticsearch中的post_filter后置过滤器技术
Elasticsearch中的post_filter后置过滤器技术
|
6月前
|
存储 JSON 自然语言处理
技术经验分享:Elasticsearch倒排索引结构
技术经验分享:Elasticsearch倒排索引结构
43 0
|
6月前
|
Java API 索引
必知的技术知识:Elasticsearch和Kibana安装
必知的技术知识:Elasticsearch和Kibana安装
47 0