Returns a {@link Scorer} which scores documents in/out-of order accordingto
scoreDocsInOrder
.
NOTE: even if scoreDocsInOrder
is false, it is recommended to check whether the returned Scorer
indeed scores documents out of order (i.e., call {@link #scoresDocsOutOfOrder()}), as some Scorer
implementations will always return documents in-order.
NOTE: null can be returned if no documents will be scored by this query.
@param context the {@link AtomicReaderContext} for which to return the {@link Scorer}.
@param scoreDocsInOrder specifies whether in-order scoring of documents is required. Note that if set to false (i.e., out-of-order scoring is required), this method can return whatever scoring mode it supports, as every in-order scorer is also an out-of-order one. However, an out-of-order scorer may not support {@link Scorer#nextDoc()}and/or {@link Scorer#advance(int)}, therefore it is recommended to request an in-order scorer if use of these methods is required.
@param topScorer if true, {@link Scorer#score(Collector)} will be called; if false,{@link Scorer#nextDoc()} and/or {@link Scorer#advance(int)} willbe called.
@param acceptDocs Bits that represent the allowable docs to match (typically deleted docs but possibly filtering other documents)
@return a {@link Scorer} which scores documents in/out-of order.
@throws IOException if there is a low-level I/O error