用Golang写一个搜索引擎(0x02)

本文介绍了搜索引擎的核心技术——倒排索引,详细讲解了倒排索引的概念和作用,并通过一个例子展示了其工作原理。接着,文章探讨了如何利用Golang中的MMAP系统调用处理海量数据,以实现高效读取,特别是针对搜索引擎的倒排索引文件。最后,提到了在实现倒排索引时,不同数据结构的选择问题。
摘要由CSDN通过智能技术生成

这一篇,我们来说说搜索引擎最核心的技术,倒排索引技术,倒排索引可能需要分成几篇文章才说得完,我们先会说说倒排索引的技术原理,然后会讲讲怎么用一些数据结构和算法来实现一个倒排索引,然后会说一个索引器怎么通过文档来生成一个倒排索引。

倒排索引

什么是倒排索引呢?索引我们都知道,就是为了能更快的找到文档的数据结构,比如给文档编个号,那么通过这个号就可以很快的找到某一篇文档,而倒排索引不是根据文档编号,而是通过文档中的某些个词而找到文档的索引结构。

倒排索引技术简单,高效,简直是为搜索引擎这种东西量身定做的,就是靠这个技术,实现一个搜索引擎才成为可能,我们也才能在海量的文章中通过一个关键词找到我们想要的内容。

我们看个例子,有下面的几个文档:

文档编号 文档内容
1 这是一个Go语言实现的搜索引擎
2 PHP是世界上最好的语言
3 Linux是C语言和汇编语言实现的
4 谷歌是一个世界上最好的搜索引擎公司

直观的看,我们通过编号1,2,3,4可以很快的找到文档,但是我们需要通过关键词找文档,那么把上面那个表格稍微变化一下,就是倒排索引了

倒排索引【只列出了部分关键词】

关键词 文档编号
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值