int32_t ReqExclScorer::nextDoc()
 {
     if (!reqScorer)
         return doc;
     doc = reqScorer->nextDoc();
     if (doc == NO_MORE_DOCS)
     {
         reqScorer.reset(); // exhausted, nothing left
         return doc;
     }
     if (!exclDisi)
         return doc;
     doc = toNonExcluded();
     return doc;
 }
int32_t ReqExclScorer::advance(int32_t target) {
    if (!reqScorer) {
        doc = NO_MORE_DOCS;
        return doc;
    }
    if (!exclDisi) {
        doc = reqScorer->advance(target);
        return doc;
    }
    if (reqScorer->advance(target) == NO_MORE_DOCS) {
        reqScorer.reset();
        doc = NO_MORE_DOCS;
        return doc;
    }
    doc = toNonExcluded();
    return doc;
}