public override bool SkipTo(int target) { if (FirstTime) // initialize { InitList(false); for (SpansCell cell = First; More && cell != null; cell = cell.Next_Renamed) { More = cell.SkipTo(target); // skip all } if (More) { ListToQueue(); } FirstTime = false; } // normal case else { while (More && Min().Doc() < target) // skip as needed { if (Min().SkipTo(target)) { Queue.UpdateTop(); } else { More = false; } } } return(More && (AtMatch() || Next())); }
public override bool SkipTo(int target) { if (firstTime) // initialize { InitList(false); for (SpansCell cell = first; more && cell != null; cell = cell.next) { more = cell.SkipTo(target); // skip all } if (more) { ListToQueue(); } firstTime = false; } // normal case else { while (more && Min.Doc < target) // skip as needed { if (Min.SkipTo(target)) { queue.UpdateTop(); } else { more = false; } } } return(more && (AtMatch || Next())); }
public virtual bool SkipTo(int target) { if (firstTime) { // initialize InitList(false); for (SpansCell cell = first; more && cell != null; cell = cell.next) { more = cell.SkipTo(target); // skip all } if (more) { ListToQueue(); } firstTime = false; } else { // normal case while (more && Min().Doc() < target) { // skip as needed if (Min().SkipTo(target)) { queue.AdjustTop(); } else { more = false; } } } return(more && (AtMatch() || Next())); }
public override bool Next() { if (FirstTime) { InitList(true); ListToQueue(); // initialize queue FirstTime = false; } else if (More) { if (Min().Next()) // trigger further scanning { Queue.UpdateTop(); // maintain queue } else { More = false; } } while (More) { bool queueStale = false; if (Min().Doc() != Max.Doc()) // maintain list { QueueToList(); queueStale = true; } // skip to doc w/ all clauses while (More && First.Doc() < Last.Doc()) { More = First.SkipTo(Last.Doc()); // skip first upto last FirstToLast(); // and move it to the end queueStale = true; } if (!More) { return(false); } // found doc w/ all clauses if (queueStale) // maintain the queue { ListToQueue(); queueStale = false; } if (AtMatch()) { return(true); } More = Min().Next(); if (More) { Queue.UpdateTop(); // maintain queue } } return(false); // no more matches }
public override bool Next() { if (firstTime) { InitList(true); ListToQueue(); // initialize queue firstTime = false; } else if (more) { if (Min.Next()) // trigger further scanning { queue.UpdateTop(); // maintain queue } else { more = false; } } while (more) { bool queueStale = false; if (Min.Doc != max.Doc) // maintain list { QueueToList(); queueStale = true; } // skip to doc w/ all clauses while (more && first.Doc < last.Doc) { more = first.SkipTo(last.Doc); // skip first upto last FirstToLast(); // and move it to the end queueStale = true; } if (!more) { return(false); } // found doc w/ all clauses if (queueStale) // maintain the queue { ListToQueue(); queueStale = false; } if (AtMatch) { return(true); } more = Min.Next(); if (more) { queue.UpdateTop(); // maintain queue } } return(false); // no more matches }
public virtual bool Next() { if (firstTime) { InitList(true); ListToQueue(); // initialize queue firstTime = false; } else if (more) { if (Min().Next()) { // trigger further scanning queue.AdjustTop(); // maintain queue } else { more = false; } } while (more) { bool queueStale = false; if (Min().Doc() != max.Doc()) { // maintain list QueueToList(); queueStale = true; } // skip to doc w/ all clauses while (more && first.Doc() < last.Doc()) { more = first.SkipTo(last.Doc()); // skip first upto last FirstToLast(); // and move it to the end queueStale = true; } if (!more) { return(false); } // found doc w/ all clauses if (queueStale) { // maintain the queue ListToQueue(); queueStale = false; } if (AtMatch()) { return(true); } more = Min().Next(); if (more) { queue.AdjustTop(); // maintain queue } } return(false); // no more matches }
public override bool MoveNext() { if (firstTime) { InitList(true); ListToQueue(); // initialize queue firstTime = false; } else if (more) { if (Min.MoveNext()) // trigger further scanning { queue.UpdateTop(); // maintain queue } else { more = false; } } while (more) { bool queueStale = false; if (Min.Doc != max.Doc) // maintain list { QueueToList(); queueStale = true; } // skip to doc w/ all clauses while (more && first.Doc < last.Doc) { more = first.SkipTo(last.Doc); // skip first upto last FirstToLast(); // and move it to the end queueStale = true; } if (!more) { return(false); } // found doc w/ all clauses if (queueStale) // maintain the queue { ListToQueue(); //queueStale = false; // LUCENENET: IDE0059: Remove unnecessary value assignment (this is reset to false at the beginning of the loop) } if (AtMatch) { return(true); } more = Min.MoveNext(); if (more) { queue.UpdateTop(); // maintain queue } } return(false); // no more matches }
public virtual bool Next() { if (firstTime) { InitList(true); ListToQueue(); // initialize queue firstTime = false; } else if (more) { more = Min().Next(); // trigger further scanning if (more) { queue.AdjustTop(); // maintain queue } } while (more) { bool queueStale = false; if (Min().Doc() != max.Doc()) { // maintain list QueueToList(); queueStale = true; } // skip to doc w/ all clauses while (more && first.Doc() < last.Doc()) { more = first.SkipTo(last.Doc()); // skip first upto last FirstToLast(); // and move it to the end queueStale = true; } if (!more) { return(false); } // found doc w/ all clauses if (queueStale) { // maintain the queue ListToQueue(); queueStale = false; } if (AtMatch()) { return(true); } // trigger further scanning if (inOrder && CheckSlop()) { /* There is a non ordered match within slop and an ordered match is needed. */ more = FirstNonOrderedNextToPartialList(); if (more) { PartialListToQueue(); } } else { more = Min().Next(); if (more) { queue.AdjustTop(); // maintain queue } } } return(false); // no more matches }