ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

C++ - Boost搜索引擎

C++ - Boost搜索引擎

Boost 是 C++ 社区广泛使用的高质量开源库集合,但其其本身并没有站内搜索功能,用户只能通过目录查找文档,体验并不好。
本项目旨在为 Boost 官方文档构建一个站内搜索引擎,支持关键词检索、相关性排序和摘要展示,实现“输入关键词 → 返回精准文档结果”的完整搜索流程。

原理图分析:

1:客户端 想要获取到大学生的相关信息(呈现在网页上的样子就是:网页的标题+摘要+网址),首先我们构建的服务器就要有对应的数据存在,这些数据从何而来,我们可以进行全网的一个爬虫,将数据爬到我们的服务器的磁盘上,但是我们这个项目是不涉及任何爬虫程序的,我们可以直接将 boost库 对应版本的数据直接解压到我们对应文件里。

2:现在数据已经被我们放到了磁盘中了,接下来客户端要访问服务器,那么服务器首先要运行起来,服务器一旦运行起来,它首先要做的工作就是对磁盘中的这些数据进行去标签和数据清洗的动作,因为我们从boost库拿的数据其实就是对应文档html网页,但是我们需要的只是每个网页的标题+网页内容摘要+跳转的网址,所以才有了去标签和数据清洗(只拿我们想要的)。这样就可以直接跳过网址跳转到boost库相应文档的位置。

3:服务器完成了去标签和数据清洗之后,就需要对这些清洗后的数据建立索引(方便客户端快速查找);

4:当服务器所以的工作都完成之后,客户端就发起http请求,通过GET方法,上传搜索关键,服务器收到了会进行解析,通过客户端发来的关键字去检索已经构建好的索引,找到了相关的html后,就会将逐个的将每个网页的标题、摘要和网址拼接起来,构建出一个新的网页,响应给客户端;至此,客户就看到了相应的内容,点击网址就可以跳转到boost库相应的文档位置。
 

技术栈
语言:C++17(兼顾性能与现代特性)
核心库:
cppjieba:中文分词(支持英文/数字混合)
jsoncpp:构建 JSON 响应
cpp-h

返回列表