北大天网搜索引擎TSE分析及完全注释[6]倒排索引的建立的程序分析(3)

时间:2022-03-13 05:41:27
 

这里介绍正向索引的建立,如果直接建立倒排索引效率上可能会很低,所以可以先产生正向索引为后面的倒排索引打下基础。

 

详细的文件功能和介绍都在这里有了介绍自顶向下学搜索引擎——北大天网搜索引擎TSE分析及完全注释[5]倒排索引的建立及文件介绍

 

CrtForwardIdx.cpp文件

 

  1. int main(int argc, char* argv[])    //./CrtForwardIdx Tianwang.raw.***.seg > moon.fidx
  2. {
  3.     ifstream ifsImgInfo(argv[1]);
  4.     if (!ifsImgInfo) 
  5.     {
  6.         cerr << "Cannot open " << argv[1] << " for input/n";
  7.         return -1;
  8.     }
  9.     string strLine,strDocNum;
  10.     int cnt = 0;
  11.     while (getline(ifsImgInfo, strLine)) 
  12.     {
  13.         string::size_type idx;
  14.         cnt++;
  15.         if (cnt%2 == 1) //奇数行为文档编号
  16.         {
  17.             strDocNum = strLine.substr(0,strLine.size());
  18.             continue;
  19.         }
  20.         if (strLine[0]=='/0' || strLine[0]=='#' || strLine[0]=='/n')
  21.         {
  22.             continue;
  23.         }
  24.         while ( (idx = strLine.find(SEPARATOR)) != string::npos ) //指定查找分界符
  25.         {
  26.             string tmp1 = strLine.substr(0,idx);
  27.             cout << tmp1 << "/t" << strDocNum << endl;
  28.             strLine = strLine.substr(idx + SEPARATOR.size());
  29.         }
  30.         //if (cnt==100) break;
  31.     }
  32.     return 0;
  33. }