3.ElasticSearch的倒排索引

本文介绍了搜索引擎中两种核心索引技术:正向索引与倒排索引。正向索引是从文档到关键词的映射,而倒排索引则是从关键词到文档的映射。通过具体实例展示了如何构建这两种索引,并解释了倒排索引中TF(Term Frequency)的作用。

一. 正向索引

常规的索引建立方式
文档---> 关键词的映射过程(正向索引)

比如: 我有很多个文章,如果想查询其中几个文章是否含有刘耀这个关键词,那么我就需要打开所以文章,找到里面含义刘耀的文章.这就是正向索引

在搜索引擎中每个文件都对应一个文件ID,文件内容被表示为一系列关键词的集合(实际上在搜索引擎索引库中,关键词也已经转换为关键词ID)。例如“文档1”经过分词,提取了20个关键词,每个关键词都会记录它在文档中的出现次数和出现位置。(来自百度)

得到正向索引的结构如下:

“文档1”的ID > 单词1:出现次数,出现位置列表;单词2:出现次数,出现位置列表;…………。

二、倒排索引

倒排方向建立索引

关键词---> 文档的映射
把正向索引的结果重新构造成倒排索引(反向索引)

如图:

图1:

WordID单词倒排文档列表(DocId)
1刘耀(1,<3,11>),(2,<7>),(3,<9>)
2Python(1,<6>), (2,<1>), (3,<3>), (4,<9>)
3Java(3,<2>), (5, <6>)
4go(3, <1,12>), (3,<3,4>)
5js(1, <1,16>), (5, <1>)

图2:

WordID单词倒排文档列表(DocId),TF
1刘耀(1,<3,11>,2),(2,<7>),(3,<9>,2)
2Python(1,<6>,10), (2,<1>,2), (3,<3>,22), (4,<9>,12)
3Java(3,<2>,12), (5, <6>,2)
4go(3, <1,12>,2), (3,<3,4>,2)
5js(1, <1, 16>,2), (5, <1>,2)

把文档和单词进行组合运算
TF代表频率的意思

把每个出现关键词的文档都记录该文档的ID,<>括号里面的是这个关键词出现的位置,最后一位数字是出现的频率。

当我根据关键词查找 例如查找刘耀,就可以直接搜到对应文档的ID

转载于:https://www.cnblogs.com/liu-yao/p/3ElasticSearch-de-dao-pai-suo-yin.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值