ElasticSearch7笔记:倒排索引

索引的本质是一种数据结构,es使用一种叫做倒排索引的结构来完成快速全文搜索。

正排与倒排索引

我们常见的目录就是正排索引了,如我们要在唐诗三百首中找一首李白的《静夜思》,正常都是先查找目录,找到静夜思对应的页码,然后翻到对应的页码。ElasticSearch7笔记:倒排索引_第1张图片
比如现在我要查找带"月"字的古诗,显然查目录就不可行了,我需要一个热字或热词到古诗的索引。
ElasticSearch7笔记:倒排索引_第2张图片
第一个数字表示出现次数,第二个数字表示页码,后面是古诗名。这样就可以按照热字或热词来快速搜索古诗了。

ES中的倒排索引

在es中,正排索引就是有文档id到doc的关联,倒排索引就是由文档包含的单词(分词操作后的结果集)到文档id的关联。倒排索引包含:单词字典,倒排列表。

单词字典就是就是文档所包含的所有单词,记录了单词到倒排列表的关联。倒排列表记录了单词对应的文档集合,由倒排索引项组成:doc id(文档id)、TF(term frequency)词频、Pos(分词位置)、Offset(偏移)。

id doc
1 I like elasticsearch
2 elasticsearch makes me happy

如上有两个文档doc,我们要搜索包含elasticsearch的doc,就需要查看倒排索引,然后找到目标文档。

doc TF Pos Offset
1 1 2 [10,23)
2 1 0 [0,13)

你可能感兴趣的:(es7,elasticsearch)