org.apache.lucene.benchmark.byTask.tasks
Class ReadTask

java.lang.Object
  extended by org.apache.lucene.benchmark.byTask.tasks.PerfTask
      extended by org.apache.lucene.benchmark.byTask.tasks.ReadTask
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
SearchTask, SearchTravTask, SearchWithSortTask, WarmTask

public abstract class ReadTask
extends PerfTask

Read index (abstract) task. Sub classes implement withSearch(), withWarm(), withTraverse() and withRetrieve() methods to configure the actual action.

Note: All ReadTasks reuse the reader if it is already open. Otherwise a reader is opened at start and closed at the end.

The search.num.hits config parameter sets the top number of hits to collect during searching. If print.hits.field is set, then each hit is printed along with the value of that field.

Other side effects: none.


Field Summary
 
Fields inherited from class org.apache.lucene.benchmark.byTask.tasks.PerfTask
logStep, NEW_LINE, params, stopNow
 
Constructor Summary
ReadTask(PerfRunData runData)
           
 
Method Summary
protected  org.apache.lucene.search.Collector createCollector()
           
 int doLogic()
          Perform the task once (ignoring repetitions specification) Return number of work items done by this task.
protected  BenchmarkHighlighter getBenchmarkHighlighter(org.apache.lucene.search.Query q)
          Return an appropriate highlighter to be used with highlighting tasks
protected  Collection<String> getFieldsToHighlight(org.apache.lucene.document.Document document)
          Define the fields to highlight.
abstract  QueryMaker getQueryMaker()
          Return query maker used for this task.
protected  org.apache.lucene.search.Sort getSort()
           
 int numHits()
          Specify the number of hits to retrieve.
 int numToHighlight()
          Set to the number of documents to highlight.
protected  org.apache.lucene.document.Document retrieveDoc(org.apache.lucene.index.IndexReader ir, int id)
           
 void setup()
          Task setup work that should not be measured for that specific task.
 int traversalSize()
          Specify the number of hits to traverse.
 boolean withCollector()
           
 boolean withMaxScore()
          Whether maxScores should be computed (only useful with field sort)
abstract  boolean withRetrieve()
          Return true if, with search & results traversing, docs should be retrieved.
 boolean withScore()
          Whether scores should be computed (only useful with field sort)
abstract  boolean withSearch()
          Return true if search should be performed.
abstract  boolean withTraverse()
          Return true if, with search, results should be traversed.
abstract  boolean withWarm()
          Return true if warming should be performed.
 
Methods inherited from class org.apache.lucene.benchmark.byTask.tasks.PerfTask
clone, close, getBackgroundDeltaPriority, getDepth, getLogMessage, getName, getParams, getRunData, getRunInBackground, isDisableCounting, runAndMaybeStats, setDepth, setDisableCounting, setName, setParams, setRunInBackground, shouldNeverLogAtStart, shouldNotRecordStats, stopNow, supportsParams, tearDown, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ReadTask

public ReadTask(PerfRunData runData)
Method Detail

doLogic

public int doLogic()
            throws Exception
Description copied from class: PerfTask
Perform the task once (ignoring repetitions specification) Return number of work items done by this task. For indexing that can be number of docs added. For warming that can be number of scanned items, etc.

Specified by:
doLogic in class PerfTask
Returns:
number of work items done by this task.
Throws:
Exception

createCollector

protected org.apache.lucene.search.Collector createCollector()
                                                      throws Exception
Throws:
Exception

retrieveDoc

protected org.apache.lucene.document.Document retrieveDoc(org.apache.lucene.index.IndexReader ir,
                                                          int id)
                                                   throws IOException
Throws:
IOException

getQueryMaker

public abstract QueryMaker getQueryMaker()
Return query maker used for this task.


withSearch

public abstract boolean withSearch()
Return true if search should be performed.


withCollector

public boolean withCollector()

withWarm

public abstract boolean withWarm()
Return true if warming should be performed.


withTraverse

public abstract boolean withTraverse()
Return true if, with search, results should be traversed.


withScore

public boolean withScore()
Whether scores should be computed (only useful with field sort)


withMaxScore

public boolean withMaxScore()
Whether maxScores should be computed (only useful with field sort)


traversalSize

public int traversalSize()
Specify the number of hits to traverse. Tasks should override this if they want to restrict the number of hits that are traversed when withTraverse() is true. Must be greater than 0.

Read task calculates the traversal as: Math.min(hits.length(), traversalSize())

Returns:
Integer.MAX_VALUE

setup

public void setup()
           throws Exception
Description copied from class: PerfTask
Task setup work that should not be measured for that specific task. By default it does nothing, but tasks can implement this, moving work from doLogic() to this method. Only the work done in doLogicis measured for this task. Notice that higher level (sequence) tasks containing this task would then measure larger time than the sum of their contained tasks.

Overrides:
setup in class PerfTask
Throws:
Exception

numHits

public int numHits()
Specify the number of hits to retrieve. Tasks should override this if they want to restrict the number of hits that are collected during searching. Must be greater than 0.

Returns:
10 by default, or search.num.hits config if set.

withRetrieve

public abstract boolean withRetrieve()
Return true if, with search & results traversing, docs should be retrieved.


numToHighlight

public int numToHighlight()
Set to the number of documents to highlight.

Returns:
The number of the results to highlight. O means no docs will be highlighted.

getBenchmarkHighlighter

protected BenchmarkHighlighter getBenchmarkHighlighter(org.apache.lucene.search.Query q)
Return an appropriate highlighter to be used with highlighting tasks


getSort

protected org.apache.lucene.search.Sort getSort()

getFieldsToHighlight

protected Collection<String> getFieldsToHighlight(org.apache.lucene.document.Document document)
Define the fields to highlight. Base implementation returns all fields

Parameters:
document - The Document
Returns:
A Collection of Field names (Strings)


Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.