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; } }
/*---------------------------------------------------------------------------------*/ 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; }
/*---------------------------------------------------------------------------------*/ 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; }