当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/326931.html

相关文章:

  • Java与Go:字符串转IP
  • SlerfTools:简化操作,激发Solana生态创新潜能
  • AI视频风格转换动漫风:Stable Diffusion+TemporalKit
  • MongoDB 7.x 绑定多个IP(bindIp)和IP范围段(IP/24)
  • ERP系统帮助芯片公司成本如何计算 ?
  • 计算机实体安全
  • 吴恩达深度学习笔记:神经网络的编程基础2.5-2.8
  • iphoneX系统的参数
  • 基于云计算的前端资源管理系统的设计与实现
  • 区块链技术与大数据结合的商业模式探索
  • 基于JavaSpringboot+Vue实现前后端分离房屋租赁系统
  • Yarn: 安装与使用教程
  • 数据库是怎么做到事务回滚的呢?
  • 海思 Hi3519DV500 简介
  • 盘点全球十大FPGA制造商
  • 【MySQL】14. 全文索引(选学)
  • C++实现FFmpeg音视频实时拉流并播放
  • 国内ip切换app,让切换ip变得简单
  • 阿里云倚天服务器是什么?倚天服务器c8y、g8y和r8y详细介绍
  • ip地址开发场景问题
  • 【功能实现】新年贺卡(蓝桥)
  • 【Redis教程0x08】详解Redis过期删除策略内存淘汰策略
  • 鸿蒙开发 TypeScript 基础语法
  • uniapp 未配置appkey或配置错误的解决
  • 【Android】【Bluetooth Stack】蓝牙电话协议之拨打电话分析(超详细)
  • 记录关于智能家居的路程的一个bug___Segmentation fault(段错误)
  • 由浅到深认识Java语言(39):网络编程
  • PCL 彩色点云RGB转灰度并显示
  • RHEL9部署Docker环境
  • Vue3.0云里雾里