Elasticsearch面试题

112 阅读1分钟

倒排索引

倒排索引是ES实现快速搜索功能的核心概念,倒排索引的使用可以提高搜索的效率和准确性,特别是在处理大规模文本数据时。它是搜索引擎等文本处理系统中常见的核心技术之一。

要了解什么是倒排索引的话,要知道什么是正向索引

什么是正向索引?

先通过文件名找到具体的文件,再获取文件中的内容过程
    
mysql的查询功能就是正向索引的思想
    
先根据ID查询记录,再从记录中获取相关字段的数据

什么是倒排索引?

简单来说就是从文件的内容查找,得到包含这些内容的文件列表,再得到文件对应的信息,如文件名、作者、文件大小、创建时间等

倒排索引的搜索过程可以分为以下几个步骤:

1、将文档的内容通过算法进行分词,得到一个词条列表

2、将词条列表当作key,包含该词条的文档id列表作为值,形成一张表 例如

原始文档

image.png

词条表

image.png

3、词条是唯一的,所以给词条创建索引,提高搜索效率

4、把要搜索的内容进行分词,根据分词后的结果去词条进行匹配

4、通过词条查询,得到文档ID,再通过文档ID查询到具体的文档

 ES相关概念对比MySQL

image.png