C++基于正倒排索引的Boost搜索引擎 1
Boost搜索引擎项目
1.项目背景
2.搜索引擎的相关宏观原理
3.搜索引擎技术栈和项目环境
4.正排索引 VS 倒排索引 - 搜索引擎具体原理
5.编写数据去标签与数据清洗的模块Parser
6.编写建立索引的模块Index
7.编写搜索引擎模块
8.编写http_server模块
9.编写前端模块
项目背景
-- 公司:百度,搜狗,360............==>自己不可能实现
-- 站内搜索: cplusplus.com..... ==>搜索的数据更垂直,数据量小
eg.网页搜索
++网页title (可点击跳转)--超链接++
网页的摘要描述
即将跳转的网址
百度可以直接出售关键字 ==>竞价排名 -- 广告
项目宏观原理
客户端 pc/手机---------------------------server(服务器)------------------------------------全 网
浏览器 searcher(服务软件)
http请求的方式进行搜索任务 爬虫 <------------
------->
通过GET的方式上传搜索关键字
< ------------
拼接多个网页的title+desc+url,构建一个新网页,返回网络用户
客户端 pc/手机,server(服务器),全 网
浏览器在客户端中,内存与data/*.html在server(服务器)中,searcher(服务软件)在内存中,
浏览器,经过http请求的方式进行搜索任务,通过get的方式上传搜索关键字,到服务软件
服务软件需要绑定端口,检索,索引得到相关html
服务软件,拼接多个网页的title+desc+url,构建一个新的网页,返回网络用户,浏览器
从全网大量抓取网页,通过爬虫程序抓取到 data/*.html中保存
在data/*.html中进行 1.去标签&&数据清洗 2.建立索引 --->加速查找
搜索引擎技术栈与项目环境
技术栈:
C/C++ C++11 STL 准标准库Boost(文件处理) Jsoncpp(数据交换) cppjieba(切分词) cpphttplib(开源库,http服务器)
(前端) html5 CSS JS JQuery Ajax(发送请求)
项目环境:
Centos7云服务器 vim/gcc(g++)/Makefile vs2019/vs code