Package org.apache.lucene.benchmark.quality

# Class QualityStats

java.lang.Object
org.apache.lucene.benchmark.quality.QualityStats

public class QualityStats extends Object
Results of quality benchmark run for a single query or for a set of queries.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `QualityStats.RecallPoint`
  A certain rank in which a relevant doc was found.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `MAX_POINTS`
  Number of points for which precision is computed.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `QualityStats(double maxGoodPoints, long searchTime)`
  Construct a QualityStats object with anticipated maximal number of relevant hits.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addResult(int n, boolean isRelevant, long docNameExtractTime)`
  Add a (possibly relevant) doc.
  `static QualityStats`
  `average(QualityStats[] stats)`
  Create a QualityStats object that is the average of the input QualityStats objects.
  `double`
  `getAvp()`
  Return the average precision at recall points.
  `long`
  `getDocNamesExtractTime()`
  Returns the time it took to extract doc names for judging the measured query, in milliseconds.
  `double`
  `getMaxGoodPoints()`
  Returns the maximal number of good points.
  `double`
  `getMRR()`
  Returns the Mean reciprocal rank over the queries or RR for a single query.
  `double`
  `getNumGoodPoints()`
  Returns the number of good points (only relevant points).
  `double`
  `getNumPoints()`
  Returns the number of points (both relevant and irrelevant points).
  `double`
  `getPrecisionAt(int n)`
  Return the precision at rank n: |{relevant hits within first `n` hits}| / `n` .
  `double`
  `getRecall()`
  Return the recall: |{relevant hits found}| / |{relevant hits existing}|.
  `QualityStats.RecallPoint[]`
  `getRecallPoints()`
  Returns the recallPoints.
  `long`
  `getSearchTime()`
  Returns the search time in milliseconds for the measured query.
  `void`
  `log(String title, int paddLines, PrintWriter logger, String prefix)`
  Log information on this QualityStats object.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### MAX_POINTS

    public static final int MAX_POINTS
    Number of points for which precision is computed.
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### QualityStats

    public QualityStats(double maxGoodPoints, long searchTime)
    Construct a QualityStats object with anticipated maximal number of relevant hits.
    Parameters:
      `maxGoodPoints` - maximal possible relevant hits.

- ## Method Details

  - ### addResult

    public void addResult(int n, boolean isRelevant, long docNameExtractTime)
    Add a (possibly relevant) doc.
    Parameters:
      `n` - rank of the added doc (its ordinal position within the query results).
      `isRelevant` - true if the added doc is relevant, false otherwise.

  - ### getPrecisionAt

    public double getPrecisionAt(int n)
    Return the precision at rank n: |{relevant hits within first `n` hits}| / `n` .
    Parameters:
      `n` - requested precision point, must be at least 1 and at most `MAX_POINTS`.

  - ### getAvp

    public double getAvp()
    Return the average precision at recall points.

  - ### getRecall

    public double getRecall()
    Return the recall: |{relevant hits found}| / |{relevant hits existing}|.

  - ### log

    public void log(String title, int paddLines, PrintWriter logger, String prefix)
    Log information on this QualityStats object.
    Parameters:
      `logger` - Logger.
      `prefix` - prefix before each log line.

  - ### average

    public static QualityStats average(QualityStats[] stats)
    Create a QualityStats object that is the average of the input QualityStats objects.
    Parameters:
      `stats` - array of input stats to be averaged.
    Returns:
      an average over the input stats.

  - ### getDocNamesExtractTime

    public long getDocNamesExtractTime()
    Returns the time it took to extract doc names for judging the measured query, in milliseconds.

  - ### getMaxGoodPoints

    public double getMaxGoodPoints()
    Returns the maximal number of good points. This is the number of relevant docs known by the judge for the measured query.

  - ### getNumGoodPoints

    public double getNumGoodPoints()
    Returns the number of good points (only relevant points).

  - ### getNumPoints

    public double getNumPoints()
    Returns the number of points (both relevant and irrelevant points).

  - ### getRecallPoints

    public QualityStats.RecallPoint[] getRecallPoints()
    Returns the recallPoints.

  - ### getMRR

    public double getMRR()
    Returns the Mean reciprocal rank over the queries or RR for a single query.

    Reciprocal rank is defined as `1/r` where `r` is the rank of the first correct result, or `0` if there are no correct results within the top 5 results.

    This follows the definition in Question Answering - CNLP at the TREC-10 Question Answering Track.

  - ### getSearchTime

    public long getSearchTime()
    Returns the search time in milliseconds for the measured query.