void retrieval(char *indexPath,queryManager *queries,char *outputFile) { IndexReader *theIndex = new IndexReader(indexPath); char blockInfoName[] = "BM25-02"; theIndex -> loadBlockInfo(blockInfoName); ofstream F1; F1.open(outputFile); if(!F1) {cerr << "Error: file "<<outputFile<<" Could not be writ to"<<endl; return;} double totalEval=0; TimeCounter *timer = new TimeCounter(); unsigned i; for(i=0;i<queries->num();i++) { timer->start(); query* qry = queries -> getQuery(i); RetManager *reter = new RetManager(theIndex,qry); reter->retrieval(RetNum); timer->stop(); cout<<qry->topicNum<<'\t'<<timer->getTrackTime()<<'\t'<<reter->getEvalCounter()<<endl; totalEval+=reter->getEvalCounter(); reter->show(F1); //cout<<"\r retrieval topic "<<qry->topicNum<<flush; delete reter; } cout<<endl; cout<<"Used total time "<<timer->getTotalTime()<<"ms, average "<<timer->getAverageTime()<<"ms"<<" with "<<totalEval/queries->num()<<" evaluateions"<<endl; F1.close(); delete(theIndex); delete(timer); }