Class BooleanWeight

  • All Implemented Interfaces:
    SegmentCacheable

    final class BooleanWeight
    extends Weight
    Expert: the Weight for BooleanQuery, used to normalize, score and explain these queries.
    • Constructor Detail

    • Method Detail

      • explain

        public Explanation explain​(LeafReaderContext context,
                                   int doc)
                            throws java.io.IOException
        Description copied from class: Weight
        An explanation of the score computation for the named document.
        Specified by:
        explain in class Weight
        Parameters:
        context - the readers context to create the Explanation for.
        doc - the document's id relative to the given context's reader
        Returns:
        an Explanation for the score
        Throws:
        java.io.IOException - if an IOException occurs
      • matches

        public Matches matches​(LeafReaderContext context,
                               int doc)
                        throws java.io.IOException
        Description copied from class: Weight
        Returns Matches for a specific document, or null if the document does not match the parent query

        A query match that contains no position information (for example, a Point or DocValues query) will return MatchesUtils.MATCH_WITH_NO_TERMS

        Overrides:
        matches in class Weight
        Parameters:
        context - the reader's context to create the Matches for
        doc - the document's id relative to the given context's reader
        Throws:
        java.io.IOException
      • optionalBulkScorer

        BulkScorer optionalBulkScorer​(LeafReaderContext context)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • requiredBulkScorer

        private BulkScorer requiredBulkScorer​(LeafReaderContext context)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • booleanScorer

        BulkScorer booleanScorer​(LeafReaderContext context)
                          throws java.io.IOException
        Try to build a boolean scorer for this weight. Returns null if BooleanScorer cannot be used.
        Throws:
        java.io.IOException
      • bulkScorer

        public BulkScorer bulkScorer​(LeafReaderContext context)
                              throws java.io.IOException
        Description copied from class: Weight
        Optional method, to return a BulkScorer to score the query and send hits to a Collector. Only queries that have a different top-level approach need to override this; the default implementation pulls a normal Scorer and iterates and collects the resulting hits which are not marked as deleted.
        Overrides:
        bulkScorer in class Weight
        Parameters:
        context - the LeafReaderContext for which to return the Scorer.
        Returns:
        a BulkScorer which scores documents and passes them to a collector.
        Throws:
        java.io.IOException - if there is a low-level I/O error
      • count

        public int count​(LeafReaderContext context)
                  throws java.io.IOException
        Description copied from class: Weight
        Counts the number of live documents that match a given Weight.parentQuery in a leaf.

        The default implementation returns -1 for every query. This indicates that the count could not be computed in sub-linear time.

        Specific query classes should override it to provide other accurate sub-linear implementations (that actually return the count). Look at MatchAllDocsQuery.createWeight(IndexSearcher, ScoreMode, float) for an example

        We use this property of the function to count hits in IndexSearcher.count(Query).

        Overrides:
        count in class Weight
        Parameters:
        context - the LeafReaderContext for which to return the count.
        Returns:
        integer count of the number of matches
        Throws:
        java.io.IOException - if there is a low-level I/O error
      • reqCount

        private int reqCount​(LeafReaderContext context)
                      throws java.io.IOException
        Return the number of matches of required clauses, or -1 if unknown, or numDocs if there are no required clauses.
        Throws:
        java.io.IOException
      • optCount

        private int optCount​(LeafReaderContext context,
                             BooleanClause.Occur occur)
                      throws java.io.IOException
        Return the number of matches of optional clauses, or -1 if unknown, or 0 if there are no optional clauses.
        Throws:
        java.io.IOException
      • scorer

        public Scorer scorer​(LeafReaderContext context)
                      throws java.io.IOException
        Description copied from class: Weight
        Returns a Scorer which can iterate in order over all matching documents and assign them a score.

        NOTE: null can be returned if no documents will be scored by this query.

        NOTE: The returned Scorer does not have LeafReader.getLiveDocs() applied, they need to be checked on top.

        Specified by:
        scorer in class Weight
        Parameters:
        context - the LeafReaderContext for which to return the Scorer.
        Returns:
        a Scorer which scores documents in/out-of order.
        Throws:
        java.io.IOException - if there is a low-level I/O error
      • isCacheable

        public boolean isCacheable​(LeafReaderContext ctx)
        Returns:
        true if the object can be cached against a given leaf