Elasticsearch系列 | 倒排索引

Posted 手搓丸子1201

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch系列 | 倒排索引相关的知识,希望对你有一定的参考价值。

🎯摘要

看完本文,你可能有如下收获:

  • 了解正排索引
  • 了解倒排索引及其与正排索引区别

⭐️⭐️该收获仅供参考,真实收获以实物为准😇😇

🍭正排索引

Elasticsearch里存储的文档数据和mysql存储的数据概念对比如下:

在后来版本中,一个INDEX下只能包含一个TYPE,故TYPE已经被移除

索引一词并不陌生了,在学习MySQL等数据库就有此概念,通常会拿图书的目录和内容做例子,比如当我们需要在CSDN上查找关于Elasticsearch的文章时,通常会在导航栏选择大数据->Elasticsearch

MySQL所使用的索引可以看做是正排索引,假如我们要为上述的例子设计表:

标签名文章ID
zookeeper1000
elasticsearch1001
big data1002
文章ID内容
1000目前国内有大量的公司都在使用 Elasticsearch…
1001目前都在学习ElasticSearch,之前也零零散散的学过一点…
1002Elasticsearch还结合Kibana、Logstash、Elastic Stack还被广泛运用在大数据近实时分析领域…

正排索引下,只需要对ID建立索引,当我们查找时只需要通过文章ID就可以查到需要的文章了,即通过主键ID关联文章内容。但是,如果我们要通过文章中的内容去检索文章怎么办呢?

在MySQL中势必会根据关键词去文章内容做模糊查询,因为模糊查询就是遍历查询,这是非常慢的,而是还会出现大小写匹配等问题,这都会影响速度和准确率,所以这种时候就需要使用倒排索引

🍋倒排索引

倒排索引是通过文章内容关键字关联文章ID,与正排索引刚好是反的,那么对上表,它的倒排索引大概如下:

关键字文章ID
Elasticsearch1000,1001,1002
国内1000

总结一句话就是正排索引是在文档里匹配关键字,而倒排索引是根据关键字找文档,刚好相反


☀️目前正在更新的相关内容:计算机基础、Java、Spring全家桶、数据库、微服务组件、项目实战、面试真题、校招经验…☀️
💝感谢各位的观看,文章系个人理解,如有错误请联系我指出 :)💝
⛄️创作不易,若是内容对你有帮助的话⛄️
🙏不要忘记点赞、评论、收藏哦!!!🙏

以上是关于Elasticsearch系列 | 倒排索引的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch系列---shard内部原理

Elasticsearch系列---shard内部原理

Elasticsearch系列---shard内部原理

ElasticSearch系列-01初识以及安装elasticSearch

ElasticSearch 的倒排索引是什么

Elasticsearch 倒排索引的理解