前言
Elastic 在数据库分类中一般被分为全文检索的数据库,那为什么这么区分呢?主要是因为其独特的索引结构 即倒排索引。
倒排索引
倒排索引先将文档中包含的关键字全部提取出来,然后再将关键字与文档的对应关系保存起来,最后再对关键字本身做索引排序。用户在检索某一关键字时,可以先对关键字的索引进行查找,再通过关键字与文档的对应关系找到所在文档。这类似于查字典一样,字典的拼音表和部首中的内容就是关键字与文档的对应关系。
学过mysql的都知道,mysql就是板板正正的正排索引,例如用 最简单的主键索引来说,mysql推荐使用主键索引,因为mysql会将所有的主键提取出来,以某种结构存储成索引库,当我们进行查询的时候会优先使用主键在索引库中 进行查询,在关联出剩下的数据,优化查询速度。
而倒排索引则是相反,它会提取数据里面的关键词,然后用关键词作为索引库的键,而将数据的id作为索引库的值进行存储,这样当我们以关键词进行查询的时候,他能快速的以关键词关联出id然后在回填剩下的数据