コード例 #1
0
ファイル: ir.cpp プロジェクト: amanj2718/mygsearch
void CreateIndexes(){
	// open file, assign DocID
	// CreateRecords(cleaned_str, docid);  understand how you'll receive an array of records
	// create the index
	std::ifstream fptr;
	fptr.open("example.txt", std::ios::in);
	int len = 0;
	char* buffer;
	if(fptr.is_open()){
		fptr.seekg(0, fptr.end);
		len = fptr.tellg();
		fptr.seekg(0, fptr.beg);
		buffer = new char[len];
		fptr.read(buffer, len);
		fptr.close();
	}
	std::string file_str (buffer, len);
	std::string cleaned_str = FilterStopwords(file_str);
	std::cout << "No stopwords -- " << cleaned_str << std::endl;
	std::vector<Record*> records;
	CreateRecords(cleaned_str, 1, records);
	std::map<const std::string, int> iindex;
	for(std::vector<Record*>::iterator i = records.begin(); i != records.end(); i++){
		iindex[(*i)->term] = (*i)->docid;
	}
	for(std::map<const std::string, int>::iterator i = iindex.begin(); i != iindex.end(); i++){
		std::cout << i->first << "\t" << i->second << std::endl;
	}
}
コード例 #2
0
ファイル: sfs-copy.c プロジェクト: mingpen/OpenNT
/*---------------------------------------------------------------------------------*/
 void CollateFileUsingScheme ( CCB_Header * h )
/*---------------------------------------------------------------------------------*/
   {
      CCB_CollateFile * c;
      FCB_File * f;

      c = ( CCB_CollateFile * ) h;

      if ( f = SfsOpenFile ( c -> FileExtrinsicKey ) )
        {
           if ( c -> RecordSize )
             RecordSize = c -> RecordSize;
           else
             if ( f -> RecordSize )
               RecordSize = f -> RecordSize;
             else
               RecordSize = K;

           if ( RecordSize > OneFrameSize )
             NotifyAndActAsProper ( ErrorImproperRecordSpan );

           Count = c -> Count;

           SetCollateFileBoundaries ( f );

           PatternIndex = c -> PatternIndex;
           CreateRecords ( PatternIndex, RecordSize );

           if ( Records )
             while ( Count -- )
               {
                  GetReadyForNextFileRecord ( f );
                  SfsReadFile ( f );
                  CreateRecord ( NewRecord + 1 );
                  CollateRecords ();
               }
           else
             NotifyAndActAsProper ( ErrorNothingToCollate );

           CloseFile ( f );
        }
      return;
   }
コード例 #3
0
ファイル: sfs-copy.c プロジェクト: mingpen/OpenNT
/*---------------------------------------------------------------------------------*/
 void CollateFile ( CCB_Header * h )
/*---------------------------------------------------------------------------------*/
   {
      CCB_CollateFile * c;
      FCB_File * f;

      c = ( CCB_CollateFile * ) h;

      if ( f = SfsOpenFile ( c -> FileExtrinsicKey ) )
        {
           if ( c -> RecordSize )
             RecordSize = c -> RecordSize;
           else
             if ( f -> RecordSize )
               RecordSize = f -> RecordSize;
             else
               RecordSize = K;

             if ( RecordSize > OneFrameSize )
               NotifyAndActAsProper ( ErrorImproperRecordSpan );

             f -> BytesToBeRead = RecordSize;
             f -> FileSpanRead = Zero;

             PatternIndex = c -> PatternIndex;
             CreateRecords ( PatternIndex, RecordSize );

             while ( Set )
               {
                  SfsReadFile ( f );
                  if ( f -> BytesRead )
                    {
                       CreateNextRecord ();
                       CollateRecords ();
                    }
                  else
                    break;
               }

           CloseFile ( f );
        }
      return;
   }