Boost搜索引擎相关介绍:
首先,Boost库不具备搜索条件,所以我们这个项目借此实现搜索功能。
项目的核心就是以用户搜索的相关内容在目标数据中进行查找。
首先,我们面临的第一大难题就是目标数据,在这里目标数据就是Boost库网页文件(.html)这也就证实了boost搜索引擎项目名称的由来,对于网页文件(.html)我们需要了解它的结构,方便后边提取内容,这个过程在后面的文件数据处理模块进行详细讲解。
其次就是如何将用户搜索内容和网页文件内容进行相关的联系。
比如,用户搜索一个关键词,如何在网页文件中查找到对应的数据;用户输入 一串关键词,如何在文件中搜索到相关的内容。我们将引入cppjieba分词工具,该工具能有效的进行词法语法分析,将搜索的语句和被搜索内容分割为许多独立的单元,再将用户搜索单元与被搜素单元进行比较,就能判断是否是用户要搜索的内容。
用户在搜索框中,进行的每一次搜索,在我们的服务器中都有记录。搜索几次记录几次。
最后就是网络编程,通过TCP进行网络通信(服务器-客户端),我们在这里引入cpphttplib库,该库为我们提供了,套接字的调用,以及我们网页文件的设置。
这就是我们编写的网页文件,在这里声明一下,我们主要介绍后端程序代码,前端不做具体介绍,前端感兴趣可以去学习一下相关知识。
Boost搜索引擎成品展示:
我们通过编写的网页进行搜索结构的展示,由图可以看出每条搜索结果包括:标题,内容,url,摘要。
点击搜索结果,就可以跳转到boost官网页面,可以通过 ctrl+f,进行页面关键词搜索。
ctrl+f将所有关键词都标识出来,方便我们查看。
以上就是我们的成品展示,我们实现的Boost搜索引擎基于boost官方网页文档进行相关搜索,成功实现了客户端与服务端之间的交互。
该项目缺点:
设备资源:
搜索引擎(如百度,搜狗等)都具备良好的数据存储功能,以及硬件设备,所以使用它们提供的应用程序,搜索的效率比较高。我们只是对boost库网页文件进行了相关的搜索,可想而知数据量在大一点,资源较少的设备就会崩溃。
该项目拓展:
数据来源:我们可以引入爬虫之类的技术,进行搜索数据的捕获。