站内搜索引擎
在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结构体存储文件内容,其含有标题,内容