倒排索引(Inverted Index) 是 Elasticsearch(以及底层 Lucene)能够实现毫秒级全文搜索的核心数据结构。 为了理解它,我们首先需要理解它的对立面——正排索引(Forward Index)。 --- 1. 直观对比:正排 vs 倒排 正排索引 (Forward Index) 这是传统关系型数据库(如 MySQL)存储数据的方式。 结构: 例子: ID 1 -> "谷歌地图之父加盟 Facebook" ID 2 -> "谷歌地图创始人拉斯离开 Facebook" 搜索问题: 如果你要搜索包含“谷歌”的文档,数据库必须遍历每一行内容,检查是否包含该词。数据量大时,速度极慢(Full Table Scan)。 倒排索引 (Inverted Index) 这就好比书籍末尾的索引页。 结构: 例子: "谷歌" -> [1, 2] "地图" -> [1, 2] "Facebook" -> [1, 2] "加盟" -> [1] "离开" -> [2] 搜索优势: 如果搜“加盟”,直接查表找到 ID [1]。不需要遍历所有文档。 --- 2. 倒排索引的具体构建过程...