Hello, This change would be correct, but it would only save work when the conjunction is exhausted, and add overhead otherwise?
Le sam. 30 sept. 2023, 16:20, YouPeng Yang <yypvsxf19870...@gmail.com> a écrit : > Hi > I am reading the code of class ConjunctionDISI .and about the method > nextDoc , Suppose that the sub-disi is emtpy in the lead1.lead2,should > there be that it can return immediately when the input doc==NO_MORE_DOCS? > > > private int doNext(int doc) throws IOException { > advanceHead: > for (; ; ) { > assert doc == lead1.docID(); > //assumpt doc==NO_MORE_DOCS ,it return > if(doc==NO_MORE_DOCS){ > return NO_MORE_DOCS; > } > // find agreement between the two iterators with the lower costs > // we special case them because they do not need the > // 'other.docID() < doc' check that the 'others' iterators need > final int next2 = lead2.advance(doc); > if (next2 != doc) { > doc = lead1.advance(next2); > if(doc==NO_MORE_DOCS){ > return NO_MORE_DOCS; > } > if (next2 != doc) { > continue; > } > } > ..left omited... > } >