ES是一款强大的开源搜索引擎,其主要的实现是通过倒排索引;
关于倒排索引: 首先有倒排索引,那就有正排的 比如经典的mysql 就是正排 其使用索引来加快查询的速度
在一个基本的表结构中有一个主键自增的索引来表示;但是在某些情况下索引会失效;这个时候尤其是大量的数据的查询就会比较慢那么我们就要借助这个工具来实现快速的查询;
首先倒排有些概念与mysql不同但二者直接相互之间有联系;
倒排索引其主要有几个基本的概念,假设有一个文本,我们可以从最细的角度去划分每个字来进行分组;可以得到一个不重复的集合,那么假设对于我们的每个数据而言。这里的集合中每个元素都可以有一个索引的集合来对应数据库中存在的字,当然我们不可能对每个字去划分;从文本中提出的元素叫词条 ,简单而言就是这个词条在哪些数据出现过,倒排索引就是这样对词条进行排序,这样在对大量数据进行查询时就不是单单的遍历了;
那么倒排索引如此看来相当于将正排的进行了一个筛选和行列转换;
接下来就是ES和mysql的概念的对比
在mysql中我们不会只有一张表有数据,而是有多张表那么es在查询的时候我们就需要来对每个表来进行一个分类;这就是es中的索引概念,那么为了对应表中的数据我们就需要映射mysql中的字段和属性;这个可以类比为表中的结构(ddl)schema;es得到的关于索引的集合,对比一下就是一条条数据,这个就是文档(document)
类比表中的行;es中的字段对应的介绍mysql中的字段;