Object r = savedResults_prevStage.get(mQid);
float [][] savedResults = null; //store docno and score
if (r!=null){
savedResults = (float[][]) r;
}
MarkovRandomField mrf = mBuilder.buildMRF(mQuery);
// Run initial query, if necessary.
Accumulator[] results = null;
float cascadeCost = -1;
float cascadeCost_lastStage = -1;
if (mrf.getCliques().size()==0){
}
else{
if (RetrievalEnvironment.mIsNewModel){
CascadeEval ranker = new CascadeEval (mrf, mNumHits, mQid, savedResults, mK);
// Rank the documents using the cascade model.
results = ranker.rank();
cascadeCost = ranker.getCascadeCost();
}
else{
// Retrieve documents using this MRF.
MRFDocumentRanker ranker = new MRFDocumentRanker(mrf, mNumHits);
if (mExpander != null) {
results = ranker.rank();
}
// Perform pseudo-relevance feedback, if requested.
if (mExpander != null) {
// Get expanded MRF.
MarkovRandomField expandedMRF = mExpander.getExpandedMRF(mrf, results);
// Re-rank documents according to expanded MRF.
ranker = new MRFDocumentRanker(expandedMRF, mNumHits);
}