自学内容网 自学内容网

【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的一个映射关系。


原文地址:https://blog.csdn.net/weixin_74127402/article/details/136937093

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!