全部过程是这样的.
根据驻留在内存里的set集合,取出没有爬取的网页连接,然后就去把它下载下来.
比如,下载了1000个网页,然后把这1000个HTML都放到一个文件里去,这个文件可能叫TianWang.raw.8415
意思就是线程号为8415的取的原始网页集合文件
对于每个在TianWang.raw.8415中的记录,都有一个对应的类叫CDocument(有点类似CPage.)
需要建立一个表,对每个记录(CDocument)在原始网页文件中的偏移,然后顺便提取他的网页内容摘要进行记录.
之后建立一个url摘要对应记录号的表.
好,这个过程的作用是什么呢?
比如某个时候,我想要提取url为www.google.cn的网页内容. 首先我去打开这个TianWang.raw.8415文件,然后
对www.google.cn求MD5 摘要,通过这个摘要,找出这个url在TianWang.raw.8415中是第5个记录,那么知道了
他是第5个记录,再去查看他在TianWang.raw.8415中的偏移是1024,然后去读取接下来的网页,读多长,取决
于记录头中的长度字段信息.
以下是建立 记录<-->偏移量过程的关键代码,位于DocIndex.cpp中
while (getline(ifs, strLine)) {
if (strLine[0]=='/0' || strLine[0]=='#' || strLine[0]=='/n'){
nOffset = ifs.tellg();
continue;
}
ofsDoc << iDocument.m_nDocId ;
ofsDoc << "/t" << iDocument.m_nPos ;
}