ES搜索引擎的技术要点

tamoadmin 市场行情 2024-04-07 15 0

ES搜索引擎的技术要点

1.搜索引擎的工作原理

搜索引擎的基本原理是通过生成目录(索引)来快速找到包含特定关键词的文章。在大数据时代,这个过程可以分为三步:第一步,给资料编号;第二步,将每篇资料内容切成词;第三步,将词和资料编号的对应关系处理成“词=》编号列表”的形式。这样,当我们输入一个关键词时,搜索引擎可以直接从索引中找到这个词对应的文章编号列表,从而实现快速搜索。

2.ES搜索引擎的特性

ES(Elasticsearch)是一个基于Apache

Lucene的开源搜索引擎,它提供了一个分布式多用户能力的全文搜索引擎,同时也基于RESTful

Web接口,可以快速地储存、搜索和分析海量数据。ES的设计理念是分布式搜索引擎,它的核心功能是通过简单的RESTful

API来隐藏Lucene的复杂性,从而让全文搜索变得简单。ES还具有高可用、可扩展、安装使用简单等优点。

3.ES搜索引擎的架构和组件

ES搜索引擎的技术要点

在ES搜索引擎中,存储数据的基本单位是索引,一个索引可以被分割成多个

shard,每个

shard存储部分数据。这些

shard

的数据会有多个备份,每个

shard

都有一个

primary

shard,负责写入数据,还有几个

replica

shard。ES中有多个节点,会自动选举一个节点为master节点,这个master节点实际上就是干一些管理的工作,从而维护元数据,也可以成为协调节点。如果非master节点宕机后,那么会由master节点中断,如果宕机的那个节点是primaryshard,master节点会自动将其他的replica节点转换为primary节点继续工作。

4.ES搜索引擎的数据处理和查询过程

ES搜索引擎在写数据过程中,客户端选择一个es节点将数据发送过去,这个节点的数据就是coordinatingnode(协调节点)。协调节点通过对数据进行Hash算法,并对文档数据进行路由,将请求转发给对应的节点(具有primaryshard)。实际的节点上有一个primaryshard处理请求,然后将数据同步到replica节点上。在读数据过程中,可以通过docid来查询,会根据docid进行hash,判断出来当时把docid分配到了其中shard上面去,从那个shard去查询。

5.ES搜索引擎与其它搜索引擎的比较

与其它搜索引擎相比,如Lucene、Solr、Sphinx等,ES在横向扩展和高可用方面具有优势。ES是天生为了集群化而设计的,可以轻松地扩展到上百台服务器,处理PB级别的数据。而像Sphinx这样的搜索引擎,虽然也能做到这些功能,但是在易用性和用户体验方面不如ES。ES还支持更多的查询算法和支持更复杂的查询逻辑,这些都是其它搜索引擎所不及的。

追问

延伸阅读

参考资料为您提炼了 5 个关键词,查找到 85007 篇相关资料。

ES搜索引擎的定义
ES搜索引擎的工作原理
ES搜索引擎的优缺点
如何使用ES搜索引擎
ES搜索引擎的适用场景