站内搜索引擎

本文档介绍了如何构建一个站内搜索引擎,目标是搜索Boost帮助文档。项目包括HTML文档处理、正排索引和倒排索引的构建以及搜索模块。使用了cppjieba进行中文分词,Boost库处理文件系统,jsoncpp构建搜索结果。搜索引擎通过正排索引快速获取文件内容,倒排索引实现关键词搜索,并能生成相关摘要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

站内搜索引擎

在Boost官网查文档时发现Boost官网没有提供检索,于是就想着做一个可以检索Boost帮助文档的一个小型站内搜索引擎,先做了一个很简单的版本以后进行扩充

目标:实现搜索Boost帮助文档

项目依赖的第三方库 Boost, cppjieba, jsoncpp
项目源码:https://github.com/Waorange/doc-searcher

使用中文分词是为了以后可以扩充用于中文文档搜索

项目具体内容

首先可以简单的分析下需求,即实现对Boost帮助文档的搜索,我们需要实现搜索因此需要建立索引,这里我们采用正排索引和倒排索引(后面讲),而需要建立倒排索引我们就需要实现分词,同时因为Boost帮助文档为一个一个HTML文件,因此需要将HTML文件进行处理,需要找到该HTML的标题,并且去除标签,然后进行进行分词。

通过分析我们可以分成三个模块

第一个模块是对HTML文档进行处理,解析出文档标题,文档内容,和对应的Boost官网的URL

首先通过提供的HTML文件路径,对其进行遍历,获取所有文件路径,然后根据文件路进行读取文件内容,将读取的文件内容构造成一个string对象,然后进行解析,首先对通过HTML 文件格式可以很容易的通过title标签可以找到标题,另外定义了一个结构体DocInfo结构体存储文件内容,其含有标题,内容,URL,将解析的标题存入该结构体,然后解析内容,解析内容主要是去除了标签和HTML标题,通过判断<确定是否在标签中判断>确定是否标签内容结束,同样放到上面的结构体中,最后是确定URL因为所有的帮助文档均在doc目录下,有共同的前缀,因此只需要用该前缀和给定的路径进行合并得到最终URL,获取到文档全部内容后将该文档构建成一行添加到输出文件,最终构建一个行文本文件输出,在一行中三者之间通

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值