什么是ElasticSearch,可能有些人是第一次听到这个词或者真正了解这个词,其实ElasticSearch存在我们身边甚至每天都在使用。
简单介绍
什么是ElasticSearch
Elasticsearch (以下可能简称为ES)是一个开源的分布式搜索和分析引擎,它是基于 Apache Lucene 构建的。它被设计用于快速、实时地搜索、分析和存储大量的数据。我们最早接触或者用的最多ES搜索引擎就是百度。
基于ES的百度
为什么说百度是基于ES为搜索引擎的,其实ES就是当我们输入关键词作为词条然后确认搜索,搜索引擎就会给我们反馈大量的相关词条的文档。
如上图,当我们以ElasticSearch作为我们的搜索词条,搜索引擎反馈给我们的不止一条消息,但都是包含ElasticSearch的数据。
怎么实现的?
要说ES是怎么实现这种方式的,这就需要提到我们的倒排索引的理论概念,同时这也是一道小面试题,需要留心。 倒排索引相对于正向索引,最大的不同就是正向索引相当于我们在D磁盘找我们的学习资源时是一个文件夹一个文件夹的去找的,如果我们将学习资料进行多次伪装甚至用了数十个文件夹包裹,那么这种索引还是比较慢的。如果中途忘记放哪,甚至很难找到我们想要看的学习资料,这会让我们放在旁边的纸迟迟无法发挥作用。 而倒排索引它是将词条或者我们要搜寻的关键词作为拆分为不同的token并赋予其ID(position),最后根据文档ID找到对应的文档,并获取链接内容,点击后进行跳转到文档所在的位置。
如上图就是我随意做出的一个词条,其中 "最"的文档ID为7,存储在搜索的引擎,当我们搜索词中包含 "最"这个字的时候就会找到这个文档ID关联的文档,文档关联链接,最后点击时进行跳转。这就是倒排索引。
倒排索引实例演示
大致相当于如此,希望能帮助大家理解