Elasticsearch系列 | 倒排索引
Posted 手搓丸子1201
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch系列 | 倒排索引相关的知识,希望对你有一定的参考价值。
🎯摘要
看完本文,你可能有如下收获:
- 了解正排索引
- 了解倒排索引及其与正排索引区别
⭐️⭐️该收获仅供参考,真实收获以实物为准😇😇
🍭正排索引
Elasticsearch里存储的文档数据和mysql存储的数据概念对比如下:
在后来版本中,一个INDEX下只能包含一个TYPE,故TYPE已经被移除。
索引一词并不陌生了,在学习MySQL等数据库就有此概念,通常会拿图书的目录和内容做例子,比如当我们需要在CSDN上查找关于Elasticsearch的文章时,通常会在导航栏选择大数据->Elasticsearch。
MySQL所使用的索引可以看做是正排索引,假如我们要为上述的例子设计表:
标签名 | 文章ID |
---|---|
zookeeper | 1000 |
elasticsearch | 1001 |
big data | 1002 |
… | … |
文章ID | 内容 |
---|---|
1000 | 目前国内有大量的公司都在使用 Elasticsearch… |
1001 | 目前都在学习ElasticSearch,之前也零零散散的学过一点… |
1002 | Elasticsearch还结合Kibana、Logstash、Elastic Stack还被广泛运用在大数据近实时分析领域… |
… | … |
正排索引下,只需要对ID建立索引,当我们查找时只需要通过文章ID就可以查到需要的文章了,即通过主键ID关联文章内容。但是,如果我们要通过文章中的内容去检索文章怎么办呢?
在MySQL中势必会根据关键词去文章内容做模糊查询,因为模糊查询就是遍历查询,这是非常慢的,而是还会出现大小写匹配等问题,这都会影响速度和准确率,所以这种时候就需要使用倒排索引。
🍋倒排索引
倒排索引是通过文章内容关键字关联文章ID,与正排索引刚好是反的,那么对上表,它的倒排索引大概如下:
关键字 | 文章ID |
---|---|
Elasticsearch | 1000,1001,1002 |
国内 | 1000 |
… | … |
总结一句话就是正排索引是在文档里匹配关键字,而倒排索引是根据关键字找文档,刚好相反。
☀️目前正在更新的相关内容:计算机基础、Java、Spring全家桶、数据库、微服务组件、项目实战、面试真题、校招经验…☀️
💝感谢各位的观看,文章系个人理解,如有错误请联系我指出 :)💝
⛄️创作不易,若是内容对你有帮助的话⛄️
🙏不要忘记点赞、评论、收藏哦!!!🙏
以上是关于Elasticsearch系列 | 倒排索引的主要内容,如果未能解决你的问题,请参考以下文章