Class 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.

    • Constructor Detail

    • 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 PerfTask.doLogic() to this method. Only the work done in PerfTask.doLogic() is 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)