ES的书籍学习阅读笔记
- 一本书讲透ElasticSearch:原理、进阶与工程实践
- ES的基础知识
- 搜索引擎基础知识
- 倒排索引
- 全文检索
- ES的核心概念
- ES集群知识介绍
- 基础知识
一本书讲透ElasticSearch:原理、进阶与工程实践
ES的基础知识
搜索引擎基础知识
倒排索引
- 面对海量数据时,倒排索引扮演了关键角色,它以卓越的性能为我们快速定位包含用户查询关键词的相关内容。为更好地理解倒排索引,我们首先需要明确其定义:在一个文档集合中,每个文档都可视为一个词语的集合,倒排索引则是将词语映射到包含这个词语的文档的数据结构。这与普通索引(即将文档映射到其包含的词语)正好相反,而倒排索引正因其特性,成为了快速实现全文搜索的理想选择。
- 倒排索引主要由两部分组成:单词词典,即每个文档进行分词后的词项在去重后组成的集合;倒排文件是倒排列表持久化存储的结果,通常保存在磁盘等存储设备上。倒排列表记录了词项所在文档的文档列表、单词频率等信息。
全文检索
数据索引化指的是数据在写入搜索引擎(本书中主要指Elasticsearch)的过程中,扫描文档中的每一个词项,结合分词器和词典对必要的词项建立倒排索引,同时指明该词项在文章中出现的次数和位置。
特点如下:
- 只处理文本,不处理语义。
- 结果列表有相关度排序。
- 支持高亮显示结果数据。
- 原始的文本被切分为单个单词、短语或特殊标记后进行存储。
- 给定词与它的变体(如近义词)会被折叠为一个词,如electrification和ectric、mice和mouse、“土豆”和“马铃薯”、“西红柿”和“番茄”等,每组词均被视为同一个词。
ES的核心概念
对外提供服务的是整个集群,一个集群可以由多个节点组成,不同的节点根据用途不同会划分成不同的角色,每个节点的数据会划分出多个索引,一个索引对应多个分片数据。
如果用MySQL做对比的话如图所示(感觉意思上是仅供参考的,也不是完全对应的)
MySQL | ES |
---|---|
Table表 | Index索引 |
Row行 | Document文档 |
Column列 | Field字段 |
Schema模式 | Mapping映射 |
Index索引 | 所有字段都可以索引化 |