Elasticsearch的倒排索引是什么?

发布于 2020-03-07 11:19:04
关注者
0
被浏览
2352
1 个回答
  • 面试哥
    面试哥 2020-03-07
    为面试而生,有面试问题,就找面试哥。

    面试官:想了解你对基础概念的认知。

    解答:通俗解释一下就可以。

    倒排索引是搜索引擎的核心。搜索引擎的主要目标是在查找发生搜索条件的文档时提供快速搜索。倒排索引是一种像数据结构一样的散列图,可将用户从单词导向文档或网页。它是搜索引擎的核心。其主要目标是快速搜索从数百万文件中查找数据。

     

    传统的我们的检索是通过文章,逐个遍历找到对应关键词的位置。

    而倒排索引,是通过分词策略,形成了词和文章的映射关系表,这种词典+映射表即为倒排索引。

    有了倒排索引,就能实现o(1)时间复杂度的效率检索文章了,极大的提高了检索效率。

     

    img

    学术的解答方式:

    倒排索引,相反于一篇文章包含了哪些词,它从词出发,记载了这个词在哪些文档中出现过,由两部分组成——词典和倒排表。

    加分项:倒排索引的底层实现是基于:FST(Finite State Transducer)数据结构。

    lucene从4+版本后开始大量使用的数据结构是FST。FST有两个优点:

    1)空间占用小。通过对词典中单词前缀和后缀的重复利用,压缩了存储空间;

    2)查询速度快。O(len(str))的查询时间复杂度。

     

推荐阅读
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看