大家好,我是锋哥。今天分享关于 【elasticsearch 的倒排索引是什么 ?】面试题,希望对大家有帮助;
elasticsearch 的倒排索引是什么 ?
面试官
:想了解你对基础概念的认知。
解答
:通俗解释一下就可以。
传统的我们的检索是通过文章,逐个遍历找到对应关键词的位置。
而倒排索引,是通过分词策略,形成了词和文章的映射关系表,这种词典+映射表即为倒排索引。
有了倒排索引,就能实现
o(1)时间复杂度
的效率检索文章了,极大的提高了检索效率。
![](https://i-blog.csdnimg.cn/direct/dc53574c90654102b46f103443bd3101.png)
学术的解答方式:
倒排索引,相反于一篇文章包含了哪些词,它从词出发,记载了这个词在哪些文档中出现过,由两部分组成——词典和倒排表。
加分项
:倒排索引的底层实现是基于:FST(Finite State Transducer)数据结构。
lucene 从 4+版本后开始大量使用的数据结构是 FST。FST 有两个优点:
1、空间占用小。通过对词典中单词前缀和后缀的重复利用,压缩了存储空间;
2、查询速度快。O(len(str))的查询时间复杂度。