【boost_search搜索引擎】2.正排索引和倒排索引

首先,要制作搜索引擎,我们首先要了解,什么是正排索引,什么是倒排索引,这是一个搜索引擎的关键。

1.正排索引

正排索引,其实就是我们的每一个文档,对应一个文档id。
正如vector容器一样:数组的每一个元素,对应着一个下标。
正排索引也是这个道理,一个文档对应一个文档id,这也给了我们一个思路,就是我们在实现正排索引的时候,我们可以用vector来存储,这样顺序表的下标天然的就能作为我们文档的id。

就比如这个表格,我们每一个网站对应了一个id,我们通过这个id,就可以访问到对应的网站。

文档id文档
1小米汽车
2小米手机
3小米家具
4小米公司

2.倒排索引

倒排索引,是我们搜索最关键的部分,就比如,我们搜索,输入一个关键词,比如:小米品牌手机。
然后我们的搜索引擎会将这个搜索关键字进行分词,变成
小米/品牌/手机。
然后我们需要进行内容匹配,就比如,小米这个词,在文档1,2,3,4都有,
手机只有2有,然后再设置一个权重,将匹配的最多的文档id放在前面展示

关键词文档id
小米1,2,3,4
手机2

然后我们再根据文档id去找到文档,从而实现了一个正排倒排索引的配合,达到我们搜索的目的。
这里的倒排索引我们可以用一个关键词匹配到的文档id用一个vector来存储,然后关键词对应着一个vector,那我们就可以想到用unordered_map来存储,
建立关键词<->文档id的一个映射关系。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ck837

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值