Example usage for org.apache.lucene.benchmark.quality QualityStats getMRR

List of usage examples for org.apache.lucene.benchmark.quality QualityStats getMRR

Introduction

In this page you can find the example usage for org.apache.lucene.benchmark.quality QualityStats getMRR.

Prototype

public double getMRR() 

Source Link

Document

Returns the Mean reciprocal rank over the queries or RR for a single query.

Usage

From source file:PrecisionRecall.PrecisionRecallMain.java

public BeanPrecisionRecall caculate() throws Throwable {

    File topicsFile = new File(getTopicsFile());
    File qrelsFile = new File(getQrelsFile());
    Directory dir = FSDirectory.open(new File(getIndexPath()));

    IndexReader reader = DirectoryReader.open(dir);
    IndexSearcher searcher = new IndexSearcher(reader);
    String docNameField = "filename";

    PrintWriter logger = new PrintWriter(System.out, true);

    TrecTopicsReader qReader = new TrecTopicsReader();
    QualityQuery qqs[] = qReader.readQueries(new BufferedReader(new FileReader(topicsFile)));

    Judge judge = new TrecJudge(new BufferedReader(new FileReader(qrelsFile)));

    judge.validateData(qqs, logger);//from   www.j  a v a 2  s.c o  m

    QualityQueryParser qqParser = new SimpleQQParser("title", "contents");

    QualityBenchmark qrun = new QualityBenchmark(qqs, qqParser, searcher, docNameField);
    SubmissionReport submitLog = null;

    QualityStats stats[] = qrun.execute(judge, submitLog, logger);

    QualityStats avg = QualityStats.average(stats);

    BeanPrecisionRecall bpr = new BeanPrecisionRecall();

    bpr.setAveragePrecision(avg.getAvp());
    bpr.setMmr(avg.getMRR());
    bpr.setRecall(avg.getRecall());
    bpr.setSearchTime(avg.getSearchTime());

    dir.close();
    return bpr;
}