ElasticSearch与Datebase类比

本文深入浅出地介绍了Elasticsearch(ES)的全文检索机制,对比了传统数据库的索引方式,阐述了ES如何利用Lucene对文档进行高效排序及搜索,通过Kibana演示了查询过程。

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

这张图对初学者来说很懵逼,不知道为什么会有这样的对应关系。那我根据Kibana结合来解释一下:

全文检索就是对文档根据关键字搜索,把文档内容根据词的意义进行分词,把词次相近的划分成文档。

比如对一本书(book)划分:

安徽 含有这个关键字的文档在1,2,3,10,15 页; 北京   90.91...500页。大连:10亿...ES是将其排好序的。(Lucene完成)

比如我给一本书建立索引,传统的方式就是book 数据库,然后里面有一张表叫province,按照英文字母从小到大排序。比如 安徽,北京,重庆,上海,大连...扬州等。 

数据库表:province

idprovcontent
1安徽巴拉巴拉
2安徽巴拉巴拉
...  
10亿大连balababla

所以我按照字母来找,province = “大连” 的,我要一页一页的遍历过去前面10亿条数据,才能找到。

再回来说es与关系型数据库的类比:

ES把要搜索的库叫做一个索引,也就是book。它其中有一个type 叫province,type里有一个fidle 叫 prov, 去查询prov = "大连" 的结果叫做document,对应的province表中的一条或者多条记录。

下面通过kibana来演示:(涉及到一些DSL语法)

 我手动添加了一个index = book,type = province,id= 1的数据。其中他有的字段(filed)就是和数据库字段对应的。

然后去查询一下;

查询结果如下:

hits 里面的内容就是查询出的结果,就是document,相当于数据库的行记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值