入门ElasticSearch :为什么选择ES作为搜索引擎?

文章介绍了ElasticSearch在大规模数据处理中的优势,特别是其基于倒排索引的模糊搜索能力,对比了与传统数据库的区别,以及其灵活的查询语法、丰富的聚合和分析功能以及分布式特性。作者强调合理使用ElasticSearch,考虑数据规模、搜索复杂度、实时性和分布式需求等因素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

随着数据量的不断增长,搜索和分析大规模数据集变得越来越重要。传统数据库在面对这种需求时往往表现不佳,这时候就需要一种专门用于搜索和分析的引擎。ElasticSearch (简称ES)就是这样一款强大的搜索引擎,它具有许多优势,使得它成为许多企业和开发者的首选。

简单的说:ElasticSearch 是一个实时分布式存储搜索分析的引擎

在我看来ES最强的其实是它的模糊搜索功能。
那有的人就会问了:我数据库一样可以实现模糊搜索啊?

select * from student where name like '%宁正%'

例如这个sql就可以查出姓名中带有宁正两字的学生
的确,这这样做是可以模糊搜索的,但是name like '%宁正%'这种写法它是不走索引的,所以就意味着:如果你的数据量很大比如上千万,上亿条,那你不管如果去优化代码,你的查询也肯定是秒级的

并且还有一个情况,我们大部分搜索的时候,输入的信息其实并不是很准确,例如我想搜索ElasticSearch 有关的信息,但我一不小心打成了ElesticSearch ,如果按sql语句去进行模糊搜索你就无法找到和es有关的信息

所以在这种情况就可以使用ElasticSearch ,它就是为了搜索而生的。

因此,我这边就把es的优点罗列出来,并进行浅显的分析:

ES对于全文的模糊搜索非常擅长

原因:ES是基于倒排索引,使得ES能够快速匹配关键字并返回相关结果,而不需要像传统数据库那样进行全表扫描。倒排索引在存储和查询大规模文本数据时具有较高的效率。

那有些小伙伴看了可能就会问了:倒排索引是什么?倒排索引和正排索引有什么区别?我们日常使用的数据库可以使用倒排索引吗?

那接下来就一个一个回答:

倒排索引是什么?

倒排索引是一种基于关键词的索引结构,常用于全文搜索引擎和信息检索系统中。它是一种将文档中的关键词映射到对应的文档ID的数据结构。

具体来说,倒排索引将文档中的每个关键词与包含该关键词的文档ID建立映射。对于每个关键词,倒排索引记录了出现该关键词的文档列表,包括它们的词频、位置等信息。这使得在给定关键词的情况下,可以快速找到包含该关键词的相关文档。

倒排索引和正排索引有什么区别?

正排索引是一种文档ID进行排序的索引结构,它存储了文档和文档中的每个词条的详细信息。

我有一个通俗易懂的方法来表达:

正排索引就想我们看书时的目录,可以直接通过页码找到对应页码的内容

而倒排索引就是将整本书中的词汇提取出来,并记录改词汇存在于哪些页码中,形成映射关系,当我想要查找一个词汇出现在哪些页中时,便只要根据这个映射表就可以快速找到想要的页数

这么一解释,大家应该就清楚了。

我们日常使用的数据库可以使用倒排索引吗?

实际上,数据库是可以支持倒排索引的,但是与传统的正排索引相比,数据库倒排索引的实现相对有些复杂,而且数据库的主要设计目标是支持高效的数据管理和事务处理,而不是专注于全文搜索等复杂的查询需求

ES的查询语法更灵活,可以精确控制查询条件和权重,以及进行更复杂的模糊搜索

Elastic

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值