成都网站建设 致尚,做设计用的素材下载网站,温州的网站建设公司,wordpress 不同主题文章目录 前言为什么叫倒排索引数据结构如何生成如何查询TF、IDF参考文档 前言
上一章#xff0c;简单介绍了 ES 的节点类型。 本章#xff0c;我们要介绍 ES 中非常重要的一个概念#xff1a;倒排索引。 ES 的全文索引就是基于倒排索引实现的。 本章内容建议重点学习… 文章目录 前言为什么叫倒排索引数据结构如何生成如何查询TF、IDF参考文档 前言
上一章简单介绍了 ES 的节点类型。 本章我们要介绍 ES 中非常重要的一个概念倒排索引。 ES 的全文索引就是基于倒排索引实现的。 本章内容建议重点学习因为面试也常问。
为什么叫倒排索引
倒排索引指的是将每一个关键字映射到它出现的文档中。如下图所示
因为结构是倒着的因此被称为倒排索引。
数据结构
倒排索引分为 2 部分一部分叫 term directory(term 词典)一部分叫 posting list(倒排列表)。如下图所示 term directory term 字典存放着每个单词到对应倒排列表的映射关系 posting list Docs 是一个数组。其中 1:2:[2,6] 意思如下 1文档ID2词频(term frequency)[2,6]出现在文档中的第 26 个 term。
如何生成
这里涉及到我们之前讲过的分词器。工作流程如下图所示
大体就包含2部分根据分词器将文本分词然后根据分词生成倒排索引。
如何查询
例如我们查询To do right。 则该文本会先被分词为to, do, right 对应的结果如下图所示
TF、IDF
默认情况下ES 会根据文档与搜索词的相关性得分对结果降序返回。相关性得分与以下 2 个概念有关(稍做了解后续会出文章做更深入的介绍)
Term Frequency(TF)term 在文档中出现的频率得分正相关。出现频率越高得分越高Inverted Document Frequency(IDF)term 在 所有文档 中出现的频率得分负相关。出现频率越高得分越低。
参考文档
Indexing: Inverted Index