当前位置: 首页 > news >正文

【Boost搜索引擎项目】Day1 项目介绍+去标签和数据清洗框架搭建

🌈欢迎来到C++项目专栏
🙋🏾‍♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生
🌏IP坐标:湖北武汉
🍉 目前技术栈:C/C++、Linux系统编程、计算机网络、数据结构、Mysql、Python
🍇 博客介绍:通过分享学习过程,加深知识点的掌握,也希望通过平台能认识更多同僚,如果觉得文章有帮助,请您动动发财手点点赞,本人水平有限,有不足之处欢迎大家扶正~
🍓 最后送大家一句话共勉:知不足而奋进,望远山而前行。
————————————————

Day1

  • 1.项目介绍
  • 2.搜索引擎宏观介绍
  • 3.相关技术栈和项目环境
  • 4.正排索引VS倒排索引-搜索引擎具体原理
  • 5.编写数据去标签与数据清洗的模块

1.项目介绍

对比常用搜索引擎,实现一个简易版的站内搜索引擎。
基于boost库实现,boost库官网上是没有站内搜索引擎的,我们自己实现一个,部署在自己的云服务,客户端可以通过浏览器访问服务器地址,实现搜索引擎功能的使用。

2.搜索引擎宏观介绍

0
常用搜索引擎,如百度 搜狗等,搜索引擎框架可简易理解如上图,我们实现的站内搜索引擎对比就是把相关资料提前下载到云服务器本地,当用户使用搜索功能时,在服务器本地进行检索反馈。

3.相关技术栈和项目环境

  • 技术栈: C/C++ C++11, STL, 准标准库Boost,Jsoncpp,cppjieba,cpp-httplib , 选学: html5,css,js、Query、Ajax
  • 项目环境: Centos 7云服务器,vim/gcc(g++)/Makefile , vs2019 or vs code

4.正排索引VS倒排索引-搜索引擎具体原理

5.编写数据去标签与数据清洗的模块

先去boost官网将文件下载下来,使用rz命令将文件拖拽到Linux服务器
02
解压命令:
03
创建好数据文件夹用来区分处理好的数据,方便后期读取使用
04

  • 编写parser.cc模块
//代码的基本结构:
#include <iostream>
#include <string>
#include <vector>
//是一个目录,下面放的是所有的html网页
const std::string src_path = "data/input/";
const std::string output = "data/raw_html/raw.txt";
typedef struct DocInfo{std::string title;  //文档的标题std::string content; //文档内容std::string url;   //该文档在官网中的url
}DocInfo_t;
//const &: 输入
//*: 输出
//&:输入输出
bool EnumFile(const std::string &src_path, std::vector<std::string> *files_list);
bool ParseHtml(const std::vector<std::string> &files_list, std::vector<DocInfo_t>
*results);
bool SaveHtml(const std::vector<DocInfo_t> &results, const std::string &output);
int main()
{std::vector<std::string> files_list;//第一步: 递归式的把每个html文件名带路径,保存到files_list中,方便后期进行一个一个的文件进行读取if(!EnumFile(src_path, &files_list)){std::cerr << "enum file name error!" << std::endl;return 1;}//第二步: 按照files_list读取每个文件的内容,并进行解析std::vector<DocInfo_t> results;if(!ParseHtml(files_list, &results)){std::cerr << "parse html error" << std::endl;return 2;}//第三步: 把解析完毕的各个文件内容,写入到output,按照\3作为每个文档的分割符if(!SaveHtml(results, output)){std::cerr << "sava html error" << std::endl;return 3;}return 0;
}
bool EnumFile(const std::string &src_path, std::vector<std::string> *files_list)
{return true;
}
bool ParseHtml(const std::vector<std::string> &files_list, std::vector<DocInfo_t> *results)
{return true;
}
bool SaveHtml(const std::vector<DocInfo_t> &results, const std::string &output)
{return true;
}
  • 安装boost开发库
    $ sudo yum install -y boost-devel //是boost 开发库

相关文章:

【Boost搜索引擎项目】Day1 项目介绍+去标签和数据清洗框架搭建

&#x1f308;欢迎来到C项目专栏 &#x1f64b;&#x1f3fe;‍♀️作者介绍&#xff1a;前PLA队员 目前是一名普通本科大三的软件工程专业学生 &#x1f30f;IP坐标&#xff1a;湖北武汉 &#x1f349; 目前技术栈&#xff1a;C/C、Linux系统编程、计算机网络、数据结构、Mysq…...

站群服务器需要多大内存

站群服务器的内存需求取决于网站的数量和流量&#xff0c;以及服务器需要运行的应用和服务。RAKsmart小编为您整理发布站群服务器需要多大内存以及站群服务器内存需求的考虑因素。 站群服务器是一种用于托管多个网站的服务器&#xff0c;通常用于搜索引擎优化(SEO)和网络内容管…...

HTB Perfection

Perfection User Namp ┌──(kali㉿kali)-[~/HTB/machine/Perfection] └─$ nmap -A 10.129.226.58 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-03 21:10 EST Nmap scan report for 10....

如何远程连接MySQL数据库?

在现代互联网时代&#xff0c;远程连接MySQL数据库成为了许多开发者和管理员必备的技能。这不仅方便了数据的共享和管理&#xff0c;还可以使多个团队在全球范围内协同工作。本文将介绍如何通过天联组网实现远程连接MySQL数据库&#xff0c;并实现高效的信息远程通信。 天联组网…...

【 HTML 及浏览器 】前端跨页面通信

前端跨页面通信&#xff1a;连接分散界面的纽带 在构建复杂的前端应用时&#xff0c;我们常常需要在不同的页面之间进行数据通信。无论是同源页面还是非同源页面&#xff0c;通信机制都是实现多页面数据同步和交互的关键。本文将探讨各种前端跨页面通信的方法&#xff0c;并提…...

内存安全的编程语言

美国政府新颁布《回归基础构件&#xff1a;通往安全软件之路》 《回归基础构件&#xff1a;通往安全软件之路》中&#xff0c;白宫国家网络主任办公室&#xff08;ONCD&#xff09;呼吁开发者使用「内存安全的编程语言」 内存安全的编程语言 根据NSA的建议&#xff0c;内存…...

Excel常用公式总结非常实用

16个最实用的Excel万能公式 1、多条件判断 IF(And(条件1,条件2..条件N),条件成立返回值) IF(or(条件1,条件2..条件N),条件成立返回值) 2、多条件查找 Lookup(1,0/((条件1*条件2*...条件N)),返回值区域&#xff09; 3、多条件求和 Sumifs(值区域,判断区域1,条件1,判断区域2,条…...

window路径特殊字符解决

官方定义命名规范 https://learn.microsoft.com/zh-cn/windows/win32/fileio/naming-a-file 重点 1.目录规范 特殊字符以空格 与点.开头结尾 2.文件规范 特殊字符以空格 与点.开头结尾NUL、COM等文件 解决方案 字符标点符号实际上在字符集定义中有一个很有趣的现象&…...

『大模型笔记』RAG 系统开发中的12大痛点及解决方案

RAG 系统开发中的12大痛点及解决方案 文章目录 问题引入一. 痛点 1:缺失内容1.1. 数据清洗的重要性1.2. 精心设计的提示(Prompt)有助于提高准确性二. 痛点 2:关键文档被遗漏2.1. 通过调整 chunk_size 和 similarity_top_k 参数优化检索效果2.2. 检索结果的优化排序三. 痛点…...

VScode---php环境搭建

文章目录 1.下载php Dehug;php server2.下载php环境3.配置环境变量5.配置php.ini文件6.设置vscode6.测试遇到的问题 1.下载php Dehug;php server 2.下载php环境 下载地址&#xff1a;https://www.php.net/downloads.php 3.配置环境变量 C:\Users\hacker>php -v PHP 8.3.3 (…...

【Vue3】3-6 : 仿ElementPlus框架的el-button按钮组件实

文章目录 前言 本节内容实现需求完整代码如下&#xff1a; 前言 上节,我们学习了 slot插槽&#xff0c;组件内容的分发处理 本节内容 本小节利用前面学习的组件通信知识&#xff0c;来完成一个仿Element Plus框架的el-button按钮组件实现。 仿造的地址&#xff1a;uhttps://…...

.datastore@cyberfear.com.mkp勒索病毒的最新威胁:如何恢复您的数据?

导言&#xff1a; 我们享受着数字化带来的便利&#xff0c;但同时也要面对不断演进的网络威胁。最近出现的 .datastorecyberfear.com.mkp、[hendersoncock.li].mkp [hudsonLcock.li]、.mkp [myersairmail.cc].mkp 勒索病毒就是其中之一&#xff0c;它对我们的数据安全构成了…...

23.基于springboot + vue实现的前后端分离-在线旅游网站系统(项目 + 论文PPT)

项目介绍 本旅游网站系统采用的数据库是MYSQL &#xff0c;使用 JSP 技术开发&#xff0c;在设计过程中&#xff0c;充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 技术选型 后端: SpringBoot Mybatis 数据库 : MyS…...

SpringCloud-RabbitMQ消息模型

本文深入介绍了RabbitMQ消息模型&#xff0c;涵盖了基本消息队列、工作消息队列、广播、路由和主题等五种常见消息模型。每种模型都具有独特的特点和适用场景&#xff0c;为开发者提供了灵活而强大的消息传递工具。通过这些模型&#xff0c;RabbitMQ实现了解耦、异步通信以及高…...

Linux网络编程 ——UDP 通信

Linux网络编程 ——UDP 通信 1. UDP1.1 UDP 通信1.2 广播1.3 组播&#xff08;多播&#xff09; 2. 本地套接字 1. UDP 1.1 UDP 通信 输入 man 2 sendto 查看说明文档 #include <sys/types.h> #include <sys/socket.h>ssize_t sendto(int sockfd, const void *buf…...

TDengine 签约树根互联,应对“高基数”难题

近日&#xff0c;树根互联与涛思数据达成签约合作&#xff0c;共同推动智能制造领域的建设。作为一家处于高速发展期的工业互联网企业&#xff0c;树根互联将新一代信息技术与制造业深度融合&#xff0c;开发了以自主可控的工业互联网操作系统为核心的工业互联网平台——根云平…...

实名制交友-智能匹配-仿二狗交友系统-TP6+uni-APP小程序H5公众号-源码交付-支持二开!

一、代码风格 通常不同的开发者具备不同的代码风格&#xff0c;但为了保证语音交友系统开发质量&#xff0c;在编码前需要进行代码风格的统一&#xff0c;通过制定一定的规则&#xff0c;约束开发者的行为。具有统一风格的代码才能更清晰、更完整、更容易理解、更方便后期维护…...

在CentOS上使用Gunicorn和systemd完整部署Flask应用:详细指南

在现代Web开发中,选择合适的技术栈对于确保应用的稳定性、性能和易于管理至关重要。本篇博客将深入探讨如何在CentOS系统上利用Flask、Gunicorn和systemd的强大组合来部署Web应用。这个全面的流程不仅包括应用的创建和运行,还涉及到如何利用系统服务来管理应用的生命周期,确…...

【信息系统项目管理师】--【信息技术发展】--【新一代信息技术及应用】--【人工智能】

文章目录 第二章 信息技术发展2.2 新一代信息技术及应用2.2.5 人工智能1.技术基础2.关键技术3.应用和发展 第二章 信息技术发展 信息技术是在信息科学的基本原理和方法下&#xff0c;获取信息、处理信息、传输信息和使用信息的应用技术总称。从信息技术的发展过程来看&#xff…...

注意力机制(代码实现案例)

学习目标 了解什么是注意力计算规则以及常见的计算规则.了解什么是注意力机制及其作用.掌握注意力机制的实现步骤. 1 注意力机制介绍 1.1 注意力概念 我们观察事物时&#xff0c;之所以能够快速判断一种事物(当然允许判断是错误的), 是因为我们大脑能够很快把注意力放在事物…...

加密压缩包密码恢复全攻略:使用ArchivePasswordTestTool找回丢失的密码

加密压缩包密码恢复全攻略&#xff1a;使用ArchivePasswordTestTool找回丢失的密码 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 在日常工…...

抖音批量下载开源神器:3分钟搞定无水印视频批量采集完整教程

抖音批量下载开源神器&#xff1a;3分钟搞定无水印视频批量采集完整教程 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback…...

实战Dell R730xd部署VMware ESXi 7.0U2A:从镜像挂载到系统配置全解析

1. 环境准备与镜像获取 在开始安装之前&#xff0c;我们需要确保Dell R730xd服务器和iDRAC远程控制台已经正确配置。这台2U机架式服务器标配双电源冗余&#xff0c;建议先检查硬件状态指示灯是否正常。我遇到过几次因为内存条没插紧导致安装失败的情况&#xff0c;所以建议先打…...

遥感地物识别黑科技:用NDVI/EVI指数+缨帽变换精准区分植被类型(ENVI5.3版)

遥感地物识别技术进阶&#xff1a;NDVI/EVI与缨帽变换的农业监测实战 在精准农业和生态监测领域&#xff0c;准确区分植被类型是核心需求。传统目视判读方法效率低下且主观性强&#xff0c;而现代遥感技术通过多光谱分析提供了科学解决方案。本文将深入探讨如何结合植被指数&am…...

地址相似度匹配新选择:MGeo镜像5分钟快速部署,支持中文地址实体对齐

地址相似度匹配新选择&#xff1a;MGeo镜像5分钟快速部署&#xff0c;支持中文地址实体对齐 1. 为什么需要专业的地址相似度匹配&#xff1f; 在日常业务中&#xff0c;地址数据往往存在多种表达方式。比如"北京市海淀区中关村大街1号"和"北京海淀中关村大街一…...

小白必看:霜儿-汉服-造相Z-Turbo常见问题与解决技巧

小白必看&#xff1a;霜儿-汉服-造相Z-Turbo常见问题与解决技巧 1. 镜像部署与启动问题 1.1 如何确认服务已正常启动 首次启动镜像时&#xff0c;模型加载可能需要3-5分钟时间。执行以下命令查看服务状态&#xff1a; cat /root/workspace/xinference.log成功启动的标志是日…...

FUTURE POLICE语音模型系统资源优化:C盘清理与模型缓存管理技巧

FUTURE POLICE语音模型系统资源优化&#xff1a;C盘清理与模型缓存管理技巧 你是不是也遇到过这种情况&#xff1f;兴致勃勃地部署了FUTURE POLICE语音模型&#xff0c;准备大展身手&#xff0c;结果没过多久&#xff0c;电脑C盘就亮起了刺眼的红色警告&#xff0c;空间告急。…...

告别SSH断开烦恼:用nohup让你的Python脚本永不掉线(附常见问题排查)

告别SSH断开烦恼&#xff1a;用nohup让你的Python脚本永不掉线&#xff08;附常见问题排查&#xff09; 远程开发时最崩溃的瞬间是什么&#xff1f;不是代码报错&#xff0c;不是逻辑漏洞&#xff0c;而是当你训练了8小时的模型即将完成时&#xff0c;SSH连接突然断开——所有进…...

用Go语言搞GIS开发?手把手教你用Gogeo库处理10万+要素的空间分析(附性能对比)

用Go语言突破GIS性能瓶颈&#xff1a;Gogeo库处理10万要素的实战指南 当你在凌晨三点盯着进度条卡在78%的ArcGIS界面&#xff0c;咖啡杯已经见底&#xff0c;而项目截止日期就在几小时后——这种绝望每个GIS开发者都深有体会。传统桌面软件处理大规模空间数据时的性能瓶颈&…...

LongCat 为 OpenClaw 装上效率引擎:你的自动化任务还能再快 30%

在技术领域&#xff0c;我们常常被那些闪耀的、可见的成果所吸引。今天&#xff0c;这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力&#xff0c;让我们得以一窥未来的轮廓。然而&#xff0c;作为在企业一线构建、部署和维护复杂系统的实践者&#xff0c;我们深知…...