【Boost】:前置知识(一)

前置知识

  • 一.背景
  • 二.下载boost库手册的网页资源
  • 三.正排索引和倒排索引
  • 四.认识标签和去标签

一.背景

现在知名的搜索引擎,例如;谷歌,百度,搜狐…它们的搜索是属于全网的,而本次的项目是区域搜索。

项目演示

【Boost】:前置知识(一)_第1张图片

要做的工作

我们的服务器首先要从浏览器里获取网页,把这些网页去标签,进行数据清理,紧接着建立索引,把索引检索的网页放到sercher里,再把网页进行剪切拼接,形成新的网页,最终返回到浏览器里。(PS:由于国家安全规定爬虫不能使用,所以我们会换一种合法的方式获取网页)。

【Boost】:前置知识(一)_第2张图片

在这里插入图片描述

二.下载boost库手册的网页资源

boost官网

这里下载任意一个版本都行。

【Boost】:前置知识(一)_第3张图片

【Boost】:前置知识(一)_第4张图片

将库拖到Linux服务器里。将它解压到boost_searcher文件夹里(任意文件夹都可,只要你能找到)

【Boost】:前置知识(一)_第5张图片

如果出现乱码就多传几次。

【Boost】:前置知识(一)_第6张图片

【Boost】:前置知识(一)_第7张图片

解压

【Boost】:前置知识(一)_第8张图片

这个文件里就是官网所有内容,直接下载就避免了使用爬虫程序。我们只处理该文件里的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文档结果进行摘要-构建响应结果

四.认识标签和去标签

什么是标签

【Boost】:前置知识(一)_第9张图片

像这种被<>括起来的就是标签,一般标签都是成对出现的,这些标签对于我们搜索毫无用处。

在data的同级目录下创建parser.cc文件,用来清理数据。

在这里插入图片描述

同时在data目录里创建一个raw_htm文件夹,在该文件夹里创建一个txt文件来放处理好的文件。

在这里插入图片描述

在这里插入图片描述

目标:把每个文档都去标签,然后写入到同一个文件中!每个文档内容不需要任何\n!文档和文档之间用\3区分

你可能感兴趣的:(boost搜索引擎,linux,网络,c++)