Elasticsearch倒排索引原理,搜索秒级响应的秘密

时间:2026-05-30 23:46:44   阅读:28

Elasticsearch之所以能实现毫秒级搜索,核心在于倒排索引这种数据结构。理解它就知道ES为什么适合搜索而不是事务。

正排索引与倒排索引

正排索引是文档ID到内容的映射,MySQL的全文索引就是这种。倒排索引反过来:把内容分词后建立"词→文档ID列表"的映射。搜索'nginx'时直接查词典找到所有包含该词的文档ID,不需要扫描全文。

分词与映射

中文分词比英文复杂得多,需要IK分词器等插件来正确切词。每个词对应的文档列表按ID排序存储,支持快速交集和并集运算。multi-match查询就是同时对多个字段的倒排索引取交集。

相关性评分

搜索结果按相关性排序,基于TF-IDF或BM25算法。TF(词频)越高越相关,IDF(逆文档频率)越大表示该词越罕见、权重越高。ES默认的BM25算法比TF-IDF更合理,不会让高频词过度影响排名。

上一篇:编写干净代码的五个原则,让你的同事少骂你

下一篇:MicroPython入门实践,用ESP32做一个温湿度监测器