【Boost搜索引擎项目】项目思维导图+项目总结

news/2024/11/14 23:56:51/

Boost搜索引擎

  • 1.项目思维导图
  • 2.项目总结
  • 3.项目地址

1.项目思维导图

0

2.项目总结

该项目是基于Boost库实现一个搜索引擎功能,部署在Linux服务器上。支持多用户同时并发的访问服务器。用户可以通过浏览器访问服务器IP地址+端口号使用搜索引擎,通过搜索关键字获得想要的boost库信息。该项目大致逻辑如下:第一步、先去boots官网下载boost文档到云服务器上;第二步、对下载下来的html信息进行读取+去标签、数据清洗等处理,而后把处理好的数据放入指定指定文件目录下方便后续使用;第三步、根据关键字、或id构建正排倒排索引,这一步决定用户在搜索关键字的时候搜索结果排列的先后顺序;第四步、对搜索关键字进行分词处理,这里用的是第三方库CPPJieba分词;第五步、构建搜索结构,用户通过关键字的搜索获得相应的结果;第六步、编写html网页信息,与后端交互呈现结果。

网页搜索结果
01
02
前端部分遗漏下一些问题暂时没解决,导致搜索框功能与后端交互失败,暂时没解决
03

通过控制台查看结果
02

问题描述:在搜索框输入搜索关键字的时候没有构建出搜索结果呈现,但是通过F12查看,后台是可以拿到搜索关键字的,并呈现结果的,可能是因为前端部分有bug未修复导致的 ,前端部分我不是特别擅长,如果大家有解决方案也欢迎交流一下~

总结:写这个项目从开始到最后结项断断续续的用了快一个月的时间,期间最头疼的就是功能测试时的各种调试了,利用了ChatGPT等工具帮助解决错误问题,在这个过程中也是收获了许多,对调试技能也提高了不少,项目整体结构并不复杂,但也需要对C++语法、设计模式、STL等知识有一定了解。

项目存在不足:

  1. 前端交付的网页问题 (上面有描述过)
  2. 对搜索结果的排序处理的比较简单粗暴:利用权重排序搜索结果,规则是:在标题中出现搜索关键词10+内容中出现1的暴力处理
  3. 搜索内容是提取在云服务上下载好的 存在时效性
  4. 其他…

3.项目地址

https://gitee.com/X_dragon1024/project-c/tree/master/Boost_%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E


http://www.ppmy.cn/news/1400339.html

相关文章

爬取b站音频和视频数据,未合成一个视频

一、首先找到含有音频和视频的url地址 打开一个视频,刷新后,找到这个包,里面有我们所需要的数据 访问这个数据包后,获取字符串数据,用正则提取,再转为json字符串方便提取。 二、获得标题和音频数据后&…

MySQL实现读写分离

1. mycat实现读写分离 MyCAT 是使用 JAVA 语言进行编写开发,使用前需要先安装 JAVA 运行环境(JRE),由于 MyCAT 中使用了 JDK7 中的一些特性,所以要求必须在 JDK7 以上的版本上运行。 官网下载jdk并解压文件 [rootmycat ~]# tar -xf jdk-8u181-linux-x…

【探索Linux】—— 强大的命令行工具 P.31(守护进程)

阅读导航 引言一、守护进程简介1. 概念2. 特点 二、用C创建守护进程⭕代码✅主要步骤 温馨提示 引言 当谈到计算机系统中运行的特殊进程时,守护进程(daemon)无疑是一个备受关注的话题。作为在后台默默运行并提供各种服务的进程,守…

Qt源码分析:QMetaObject实现原理

Qt基于QMetaObject实现了信号/槽机制、属性机制等多个功能特性,而QMetaObject实际上是实现了一种反射机制。 Ref. from Reflection in Java The term "RTTI" is a C-specific term referring to the functionality of the core language that allows the…

go中方法的Receiver (值类型指针类型)

在Go语言中,方法的接收者(Receiver)定义了该方法是与哪种类型的变量关联。方法的接收者可以是值类型也可以是指针类型,这决定了调用方法时是如何传递接收者的。 值类型与指针类型接收者 值类型接收者 当方法的接收者是值类型时&a…

如何应对复杂软件工程的开发流程?

应对复杂软件工程的开发流程通常需要一个结构化和系统化的方法。这种方法不仅包括采用合适的技术和工具,还涉及到项目管理、团队协作、需求分析、设计、实施、测试、部署和维护等多个方面。以下是一些关键步骤,以及如何将这些步骤应用于使用LabVIEW进行软…

SpringBoot 登录认证(二)

SpringBoot 登录认证(一)-CSDN博客 SpringBoot 登录认证(二)-CSDN博客 SpringBoot登录校验(三)-CSDN博客 HTTP是无状态协议 HTTP协议是无状态协议。什么又是无状态的协议? 所谓无状态&…

HTML5+CSS3+JS小实例:原生JS实现全屏滚动

实例:原生JS实现全屏滚动 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial…