QualityBenchmark (Lucene 10.5.0 benchmark API)
Description: declaration: package: org.apache.lucene.benchmark.quality, class: QualityBenchmark

Package org.apache.lucene.benchmark.quality

# Class QualityBenchmark

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

public class QualityBenchmark extends Object
Main entry point for running a quality benchmark.

There are two main configurations for running a quality benchmark:

- Against existing judgements.
- For submission (e.g. for a contest).

The first configuration requires a non null `Judge`. The second configuration requires a non null `SubmissionLogger`.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected String`
  `docNameField`
  index field to extract doc name for each search result; used for judging the results.
  `protected QualityQueryParser`
  `qqParser`
  Parser for turning QualityQueries into Lucene Queries.
  `protected QualityQuery[]`
  `qualityQueries`
  Quality Queries that this quality benchmark would execute.
  `protected IndexSearcher`
  `searcher`
  Index to be searched.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `QualityBenchmark(QualityQuery[] qqs, QualityQueryParser qqParser, IndexSearcher searcher, String docNameField)`
  Create a QualityBenchmark.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `QualityStats[]`
  `execute(Judge judge, SubmissionReport submitRep, PrintWriter qualityLog)`
  Run the quality benchmark.
  `int`
  `getMaxQueries()`
  `int`
  `getMaxResults()`
  `void`
  `setMaxQueries(int maxQueries)`
  Set the maximum number of quality queries to run.
  `void`
  `setMaxResults(int maxResults)`
  set the maximum number of results to collect for each quality query.

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

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

- ## Field Details

  - ### qualityQueries

    protected QualityQuery[] qualityQueries
    Quality Queries that this quality benchmark would execute.

  - ### qqParser

    protected QualityQueryParser qqParser
    Parser for turning QualityQueries into Lucene Queries.

  - ### searcher

    protected IndexSearcher searcher
    Index to be searched.

  - ### docNameField

    protected String docNameField
    index field to extract doc name for each search result; used for judging the results.

- ## Constructor Details

  - ### QualityBenchmark

    public QualityBenchmark(QualityQuery[] qqs, QualityQueryParser qqParser, IndexSearcher searcher, String docNameField)
    Create a QualityBenchmark.
    Parameters:
      `qqs` - quality queries to run.
      `qqParser` - parser for turning QualityQueries into Lucene Queries.
      `searcher` - index to be searched.
      `docNameField` - name of field containing the document name. This allows to extract the doc name for search results, and is important for judging the results.

- ## Method Details

  - ### execute

    public QualityStats[] execute(Judge judge, SubmissionReport submitRep, PrintWriter qualityLog) throws Exception
    Run the quality benchmark.
    Parameters:
      `judge` - the judge that can tell if a certain result doc is relevant for a certain quality query. If null, no judgements would be made. Usually null for a submission run.
      `submitRep` - submission report is created if non null.
      `qualityLog` - If not null, quality run data would be printed for each query.
    Returns:
      QualityStats of each quality query that was executed.
    Throws:
      `Exception` - if quality benchmark failed to run.

  - ### getMaxQueries

    public int getMaxQueries()
    Returns:
      the maximum number of quality queries to run. Useful at debugging.

  - ### setMaxQueries

    public void setMaxQueries(int maxQueries)
    Set the maximum number of quality queries to run. Useful at debugging.

  - ### getMaxResults

    public int getMaxResults()
    Returns:
      the maximum number of results to collect for each quality query.

  - ### setMaxResults

    public void setMaxResults(int maxResults)
    set the maximum number of results to collect for each quality query.