@Override public Scorer scorer(final AtomicReaderContext context, final boolean scoreDocsInOrder, final boolean topScorer, final Bits acceptDocs) throws IOException { assert termStates.topReaderContext == ReaderUtil.getTopLevelContext(context) : "The top-reader used to create Weight (" + termStates.topReaderContext + ") is not the same as the current reader's top-reader (" + ReaderUtil.getTopLevelContext(context); final TermsEnum termsEnum = this.getTermsEnum(context); if (termsEnum == null) { return null; } final DocsAndPositionsEnum docsEnum = termsEnum.docsAndPositions(acceptDocs, null); final DocsNodesAndPositionsEnum sirenDocsEnum = NodeTermQuery.this.getDocsNodesAndPositionsEnum(docsEnum); return new NodeTermScorer(this, sirenDocsEnum, this.createDocScorer(context)); }