int AppMain(int argc, char *argv[]) { Index *ind; try { ind = IndexManager::openIndex(RetrievalParameter::databaseIndex); } catch (Exception &ex) { ex.writeMessage(); throw Exception("QueryClarity", "Can't open index, check parameter index"); } lemur::retrieval::ArrayAccumulator accumulator(ind->docCount()); IndexedRealVector res(ind->docCount()); ofstream os(LocalParameter::expandedQuery.c_str()); lemur::retrieval::SimpleKLRetMethod *model; model = new lemur::retrieval::SimpleKLRetMethod(*ind, SimpleKLParameter::smoothSupportFile, accumulator); model->setDocSmoothParam(SimpleKLParameter::docPrm); model->setQueryModelParam(SimpleKLParameter::qryPrm); DocStream *qryStream; try { qryStream = new lemur::parse::BasicDocStream(RetrievalParameter::textQuerySet); } catch (Exception &ex) { ex.writeMessage(cerr); throw Exception("QueryClarity", "Can't open query file"); } qryStream->startDocIteration(); TextQuery *q; while (qryStream->hasMore()) { Document *d = qryStream->nextDoc(); q = new TextQuery(*d); QueryRep *qr = model->computeQueryRep(*q); res.clear(); QueryClarity(qr, q->id(), &res, model, os); delete qr; delete q; } os.close(); delete model; delete qryStream; delete ind; return 0; }