Boost搜索引擎项目相关介绍

 Boost搜索引擎相关介绍:

        首先,Boost库不具备搜索条件,所以我们这个项目借此实现搜索功能。

        项目的核心就是以用户搜索的相关内容在目标数据中进行查找。

        首先,我们面临的第一大难题就是目标数据在这里目标数据就是Boost库网页文件(.html)这也就证实了boost搜索引擎项目名称的由来,对于网页文件(.html)我们需要了解它的结构,方便后边提取内容,这个过程在后面的文件数据处理模块进行详细讲解。

        其次就是如何将用户搜索内容网页文件内容进行相关的联系。

        比如,用户搜索一个关键词,如何在网页文件中查找到对应的数据;用户输入 一串关键词,如何在文件中搜索到相关的内容我们将引入cppjieba分词工具该工具能有效的进行词法语法分析,将搜索的语句和被搜索内容分割为许多独立的单元,再将用户搜索单元与被搜素单元进行比较,就能判断是否是用户要搜索的内容。

用户在搜索框中,进行的每一次搜索,在我们的服务器中都有记录。搜索几次记录几次。 

        最后就是网络编程,通过TCP进行网络通信(服务器-客户端),我们在这里引入cpphttplib库该库为我们提供了,套接字的调用,以及我们网页文件的设置

这就是我们编写的网页文件,在这里声明一下,我们主要介绍后端程序代码,前端不做具体介绍,前端感兴趣可以去学习一下相关知识。

Boost搜索引擎成品展示:

        我们通过编写的网页进行搜索结构的展示,由图可以看出每条搜索结果包括:标题,内容,url,摘要

点击搜索结果,就可以跳转到boost官网页面,可以通过 ctrl+f,进行页面关键词搜索。

ctrl+f将所有关键词都标识出来,方便我们查看。

以上就是我们的成品展示,我们实现的Boost搜索引擎基于boost官方网页文档进行相关搜索,成功实现了客户端与服务端之间的交互。

该项目缺点:

设备资源:

        搜索引擎(如百度,搜狗等)都具备良好的数据存储功能,以及硬件设备,所以使用它们提供的应用程序,搜索的效率比较高。我们只是对boost库网页文件进行了相关的搜索,可想而知数据量在大一点,资源较少的设备就会崩溃。

该项目拓展: 

        数据来源:我们可以引入爬虫之类的技术,进行搜索数据的捕获。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/50367.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法第十五天:leetcode19.删除链表的倒数第N个节点

一、删除链表的倒数第N个节点的题目描述与链接 19.删除链表的倒数第N个节点的链接如下表所示,您可直接复制下面网址进入力扣学习,在观看下面的内容之前您一定要先做一遍哦,以便让我印象更深刻!!!https://leetcode.cn/p…

用python写性能测试——用locust写性能脚本

前言: 由于版本不同,当前版本不需要通过继承TaskSet类,再赋值在HttpUser(旧版本中的:HttpLoicust)类中,否则会报错空迭代器 TypeError: NoneType object is not iterable在命令行或者终端中运行 运行的命…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第五十六章 设备驱动IO控制

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

【Qt】Qt容器和STL容器的区别

1、简述 Qt容器和STL容器略有不同,作为一个Qter,应该知道它们之间的异同。 Qt容器官网介绍:https://doc.qt.io/qt-5/containers.html STL容器官网介绍:https://zh.cppreference.com/w/cpp/container 2、Qt容器和STL容器的对应关系 注意:QList 与 std::list 无关,QSet …

Python - 开源库 ReportLab 库合并 CVS 和图像生成 PDF 文档

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/140281680 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 Report…

电子邮件协议详解

电子邮件作为互联网通信的重要组成部分,已经成为日常交流不可或缺的一部分。为了确保电子邮件的有效传输和管理,计算机网络使用了多种协议。本文将深入探讨电子邮件协议中的三大核心协议:SMTP、POP3 和 IMAP。我们将详细介绍这些协议的工作原…

算法 —— 暴力枚举

目录 循环枚举 P2241 统计方形(数据加强版) P2089 烤鸡 P1618 三连击(升级版) 子集枚举 P1036 [NOIP2002 普及组] 选数 P1157 组合的输出 排列枚举 P1706 全排列问题 P1088 [NOIP2004 普及组] 火星人 循环枚举 顾名思…

获取脚本的各种路径

在脚本里面,获取当前脚本的绝对路径、相对路径、脚本名等信息 #!/bin/bash# 获取当前脚本所在目录的绝对路径 script_dir$(dirname $(readlink -f $0)) echo "当前脚本所在目录的绝对路径: $script_dir"# 获取当前脚本的绝对路径 script_path$(readlink -…

Unity UGUI 之 Input Field

本文仅作学习笔记与交流,不作任何商业用途 本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正 1.Input Field是什么? 给玩家提供输入的输入框 2.重要参数 中英文对照着看…

springboot cotroller 下载本地文件

springboot cotroller 下载本地文件 导入hutool maven依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version> </dependency>下载文件controller代码片段 GetMapping(…

环境搭建-Windows系统搭建Docker

Windows系统搭建Docker 一、系统虚拟化1.1 启用虚拟化2.2 启用Hyper-v并开启虚拟任务 三、安装WSL3.1 检验安装3.2 安装WSL 四、Docker安装4.1 Docker安装包下载4.2 Docker安装4.3 运行docker Desktop 五、Docker配置5.1 打开Docker配置中心5.2 配置Docker国内镜像 六、使用 一…

DAY15

数组 冒泡排序 冒泡排序无疑是最为出名的排序算法之一&#xff0c;总共有八大排序 冒泡的代码还是相当简单的&#xff0c;两层循环&#xff0c;外层冒泡轮数&#xff0c;里层依次比较&#xff0c;江湖中人人尽皆知 我们看到嵌套循环&#xff0c;应该马上就可以得到这个算法的…

错误解决 error CS0117: ‘Buffer‘ does not contain a definition for ‘BlockCopy‘

Unity 2022.3.9f1 导入 Runtime OBJ Importer 后出现&#xff1a; error CS0117: ‘Buffer’ does not contain a definition for ‘BlockCopy’ 解决办法&#xff1a; 源代码&#xff1a; int DDS_HEADER_SIZE 128; byte[] dxtBytes new byte[ddsBytes.Length - DDS_HEAD…

Python + PyQt 搭建可视化页面(PyCharm)

Python PyQt 搭建可视化页面&#xff08;PyCharm&#xff09; 配置PyQt5环境 1.1 安装PyQt5和PyQt5-tools pip install PyQt5pip install PyQt5-tools1.2 QtDesigner和PyUIC环境的配置 配置QTDesigner&#xff0c;用来打开QT可视化开发工具 在PyCharm中依次打开&#xff1a…

pysot使用问题记录

记录下使用过程中可能有的问题&#xff0c;按官方文档的步骤来。 项目地址&#xff1a;GitHub - STVIR/pysot: SenseTime Research platform for single object tracking, implementing algorithms like SiamRPN and SiamMask. Installation 执行 python setup.py build_ex…

软件合集:5大3C产品在线说明书制作利器

3C产品&#xff08;指计算机、通讯和消费性电子三类产品的简称&#xff09;在线说明书在当今数字化时代扮演着至关重要的角色&#xff0c;相较于传统纸质说明书&#xff0c;3C产品在线说明书更加便捷、实时更新且环保。用户可随时在线访问&#xff0c;获取最新信息&#xff0c;…

C++| STL之迭代器和vector

前言&#xff1a;在Leetcode进行手撕代码练习的时候&#xff0c;C经常能碰到不定长vector的处理&#xff0c;所以把vector常用的知识和使用方法都汇总了一下。迭代器在各种STL容器中都能见到&#xff0c;顺便把迭代器说一下。 迭代器和vector 迭代器概念常见操作不同容器和迭代…

Matplotlib知识点详解(巨详细!!!)

37.Matplotlib&#xff1a; 配置参数&#xff1a; 如果浏览器不显示图片&#xff0c;加上 %matplotlib inline 让图片可以显示中文 plt.rcParams[font.sans-serif]SimHei 让图片可以显示负号 plt.rcParams[axes.unicode_minus]False 支持svg矢量图 %config Inlineback…

听我的,事务注解真的别乱动!

更多大厂面试内容可见 -> http://11come.cn 听我的&#xff0c;事务注解真的别乱动&#xff01; 背景 故事的起源&#xff1a; 发现存在重复插入数据库的现象&#xff0c;通过排查发现是因为事务中包了锁 原因分析&#xff1a; 当线程 1 释放锁之后&#xff0c;但是此时还…

Java反射详细学习笔记

动态代理 特点 : 无侵入式的给代码增加额外的功能 ; 代理里面就是对象要被代理的方法 ; 通过接口保证,后面的对象和代理需要实现同一个接口 &#xff0c; 接口中就是被代理的所有方法 ; 如何为java对象创建一个代理 : java.lang.reflect.Proxy类 : 提供了为对象产生代理对象的…