
Boost搜索引擎
文章平均质量分 64
ChoSeitaku
是一名在校大学生,目前在做C语言、C++、蓝桥杯、算法、考研数学、408的内容,后期会做深度学习、机器学习、神经网络、人工智能、AIGC、WEB3、开发相关的内容
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
13.boost项目总结(C++)
通过这个项⽬,进⼀步的了解了搜索引擎的⼯作原理,对Linux,HTTP,⽂件操作,数据结构等核⼼操作的理解有了进⼀步的提⾼,锻炼了项⽬设计,问题解决的能⼒。写的搜索引擎,功能/流程⼤多⽐较复杂,⽽此处我只需要⼀个⽐较简单的搜索引擎,因此需要对功能进⾏提炼,把最核⼼的部分提取出来并进⾏实现.该项⽬能够达成针对Boost⽂档的搜索预期效果,也就是通过浏览器访问服务器获取搜索⻚⾯,输⼊关键字进⾏搜索,得到预期正确的搜索结果.这样的⽂档包含多个查询词,相关性理解成更⾼,应该要排到更靠前的位置。原创 2025-03-11 22:31:48 · 628 阅读 · 0 评论 -
12.重复内容去重|添加日志|部署服务到Linux上(C++)
nohup,是一个调用,可以启动程序的时候,放在后台,以守护进程的形式来服务。把ID相同的内容合并掉,将合并的内容权值叠加上。即使关掉xshell,也可以访问boost搜索。创建一个log.hpp。通过kill来下掉运行。原创 2025-02-21 11:56:09 · 334 阅读 · 0 评论 -
11.编写前端内容|vscode链接Linux|html|css|js(C++)
* 先选中input标签,直接设置标签的属性,先要选中,input:标签选择器 *//* input在进行高度设置的时候,没有考虑边框的问题 *//*将body的内容100%和html的呈现是吻合的*//* 设置外边距的上边距,保持元素和网页的上部距离 *//* 设置边框属性:边框的宽度,样式,颜色 *//* 设置input内部的字体的颜色和样式 *//* 去掉网页中的所有的默认内外边距 *//* 设置button中的字体颜色 *//* 设置a标签中的文字的字体大小 */原创 2025-02-19 00:25:00 · 940 阅读 · 0 评论 -
10.引入cpphttplib库|使用测试完成调用httplib(C++)
创建http_server.ccmakefile。原创 2025-02-18 18:05:54 · 372 阅读 · 0 评论 -
9.综合调试|输入不能存在空格|desc存在None|输出权值和ID|函数重名|修改文件名|权值和实际关键词出现次数(C++)
因为pos是无符号整数,减去step过了0,成为负数,其实是变为一个特别大的值,此时就超过了start,远大于start,条件成立,更新start,start变为一个特别大的值;目前输入的关键词时每隔一空格内容分别进行搜索,大部分时候我们都是将一串包含空格的内容直接进行搜索,需要将代码改进。但是在获取摘要的时候,用的是原始的网页内容,提炼摘要的word是已经转为小写的词。实际在获取摘要,find的时候,就匹配不到了,因为fine不是忽略大小写的。在word里面保存的对应的搜索关键字,都变为小写。原创 2025-02-17 23:47:29 · 301 阅读 · 0 评论 -
8.编写测试server|编写获取摘要代码(C++)
private://供系统进行查找的索引public:public://1. 获取或者创建index对象std::cout << "获取index单例成功..." << std::endl;//2. 根据index对象建立索引std::cout << "建立正排和倒排索引成功..." << std::endl;//query: 搜索关键字//json_string: 返回给用户浏览器的搜索结果//1.[分词]:对我们的query进行按照searcher的要求进行分词。原创 2025-02-17 16:10:26 · 232 阅读 · 0 评论 -
7.编写倒排索引|编写index单例|编写查找代码
建立倒排索引的时候要忽略大小写。原创 2025-02-16 17:55:03 · 167 阅读 · 0 评论 -
6.编写正排索引切分字符串|倒排索引原理|引入jieba到项目(C++)
获取链接: git clone https://gitcode.net/mirrors/yanyiwu/cppjieba.git。因为当前我们是⼀个⼀个⽂档进⾏处理的,⼀个⽂档会包含多个”词“, 都应当对应到当前的doc_id。倒排索引⼀定是⼀个关键字和⼀组(个)InvertedElem对应[关键字和倒排拉链的映射关系]词和⽂档的相关性(词频:在标题中出现的词,可以认为相关性更⾼⼀些,在内容中出现相关性低⼀些)根据⽂档内容,形成⼀个或者多个InvertedElem(倒排拉链)打开util.hpp。原创 2025-02-16 10:43:59 · 532 阅读 · 0 评论 -
5.编写写入文件代码|调试|编写建立索引的模块index的代码结构(C++)
建立index.hpp文件。打开raw.txt文件。将解析内容写⼊⽂件中。原创 2025-02-15 20:43:47 · 274 阅读 · 0 评论 -
4.完成html文件读取|获取title|获取content|构建url|调试(C++)
让头位置+上title的大小,就是有效区的起始,后面的查找到的位置,这是一个前闭后开的区间。在进行遍历的时候,只要碰到了>右标签,就意味着当前的标签被处理完毕。找到title关键字的开始位置,和/title关键字的开始位置。boost库的官方文档,和下载下来的文档是有路径的对应关系的。在整个文档里面去搜索title关键字和/title关键字。3. 编写parser.cc第二步的代码结构。只要碰到了<左标签,就意味着新的标签开始了。提取content,本质是进行去标签。编写parser.cc。原创 2025-02-15 17:19:27 · 535 阅读 · 0 评论 -
3.编写parser文件使用boost枚举文件名
【代码】2.编写parser文件使用boost枚举文件名。原创 2025-02-15 13:45:48 · 232 阅读 · 0 评论 -
2.认识标签和去标签|下载boost库|建立项目结构
>:html的标签,这个标签对我们进行搜索是没有价值的,需要去掉这些标签,一般标签都是成对出现的。⽬前只需要boost_1_87_0/doc/html⽬录下的html⽂件,⽤它来进⾏建⽴索引。8. 拷贝boost库当中的doc目录下的html的所有内容到data下的input目录下。data目录底下的input放的就是数据源,也就是要进行搜索的8000多个html文档。2. 在data目录下创建raw_html目录,存放处理完之后的内容。把每个⽂档都去标签,然后写⼊到同⼀个⽂件中。原创 2025-02-15 09:28:49 · 285 阅读 · 0 评论 -
1.项目背景及原理|正排索引|倒排索引分词
文档到内容的映射,存储每个文档及其包含的内容(如单词列表)。原创 2025-02-10 03:47:07 · 312 阅读 · 0 评论