前置知识
- 一.背景
- 二.下载boost库手册的网页资源
- 三.正排索引和倒排索引
- 四.认识标签和去标签
一.背景
现在知名的搜索引擎,例如;谷歌,百度,搜狐…它们的搜索是属于全网的,而本次的项目是区域搜索。
项目演示
要做的工作
我们的服务器首先要从浏览器里获取网页,把这些网页去标签,进行数据清理,紧接着建立索引,把索引检索的网页放到sercher里,再把网页进行剪切拼接,形成新的网页,最终返回到浏览器里。(PS:由于国家安全规定爬虫不能使用,所以我们会换一种合法的方式获取网页)。
二.下载boost库手册的网页资源
boost官网
这里下载任意一个版本都行。
将库拖到Linux服务器里。将它解压到boost_searcher文件夹里(任意文件夹都可,只要你能找到)
如果出现乱码就多传几次。
解压
这个文件里就是官网所有内容,直接下载就避免了使用爬虫程序。我们只处理该文件里的html文档。
创建一个目录来放置源文件,然后就可以删除Boost库了
三.正排索引和倒排索引
1.正排索引:根据文档ID,查找文档。
2.倒排索引:根据文档内容,分词,联系文档ID。
例如:
文档1:乔布斯买了四斤苹果。
文档2:乔布斯发布了苹果手机。
文档ID | 文档内容 |
---|---|
文档1 | 乔布斯买了四斤苹果 |
文档2 | 乔布斯发布了苹果手机 |
正排索引就是直接通ID查找内容。在说倒排索引时要先说一下分词。
对于停止词,例如:了,的,吗,a,an,the,我们一般在分词时不考虑。
例如:
文档1:乔布斯/买/四斤/苹果
文档2:乔布斯/发布/苹果/苹果手机
关键字(具有唯一性) | 文档ID |
---|---|
乔布斯 | 文档1,文档2 |
买 | 文档1 |
四斤 | 文档1 |
苹果 | 文档1,文档2 |
发布 | 文档2 |
苹果手机 | 文档2 |
模拟一次查找过程:
用户输入:苹果->倒排索引中查找→提取出文档lD(1,2)→根据正排索引-找到文档的内容→title+conent (desc) +ur1文档结果进行摘要-构建响应结果
四.认识标签和去标签
什么是标签
像这种被<>括起来的就是标签,一般标签都是成对出现的,这些标签对于我们搜索毫无用处。
在data的同级目录下创建parser.cc文件,用来清理数据。
同时在data目录里创建一个raw_htm文件夹,在该文件夹里创建一个txt文件来放处理好的文件。
目标:把每个文档都去标签,然后写入到同一个文件中!每个文档内容不需要任何\n!文档和文档之间用\3区分