public abstract SetNextReader ( Lucene.Net.Index.IndexReader reader, int docBase ) : void | ||
reader | Lucene.Net.Index.IndexReader | next IndexReader /// |
docBase | int | /// |
return | void |
public override void Search(Weight weight, Filter filter, Collector collector, IState state) { if (filter == null) { for (int i = 0; i < subReaders.Length; i++) { // search each subreader collector.SetNextReader(subReaders[i], docStarts[i], state); Scorer scorer = weight.Scorer(subReaders[i], !collector.AcceptsDocsOutOfOrder, true, state); if (scorer != null) { scorer.Score(collector, state); } } } else { for (int i = 0; i < subReaders.Length; i++) { // search each subreader collector.SetNextReader(subReaders[i], docStarts[i], state); SearchWithFilter(subReaders[i], weight, filter, collector, state); } } }
public override void Search(Weight weight, Filter filter, Collector collector) { if (filter == null) { for (int index = 0; index < this.subReaders.Length; ++index) { collector.SetNextReader(this.subReaders[index], this.docStarts[index]); Scorer scorer = weight.Scorer(this.subReaders[index], !collector.AcceptsDocsOutOfOrder, true); if (scorer != null) this.SearchWithScorer(this.subReaders[index], weight, scorer, collector); } } else { for (int index = 0; index < this.subReaders.Length; ++index) { collector.SetNextReader(this.subReaders[index], this.docStarts[index]); this.SearchWithFilter(this.subReaders[index], weight, filter, collector); } } }
public override void Search(Weight weight, Filter filter, Collector collector) { if (filter == null) { for (int i = 0; i < subReaders.Length; i++) { // search each subreader collector.SetNextReader(subReaders[i], docStarts[i]); Scorer scorer = weight.Scorer(subReaders[i], !collector.AcceptsDocsOutOfOrder(), true); if (scorer != null) { scorer.Score(collector); } } } else { for (int i = 0; i < subReaders.Length; i++) { // search each subreader collector.SetNextReader(subReaders[i], docStarts[i]); SearchWithFilter(subReaders[i], weight, filter, collector); } } }
public override void SetNextReader(IndexReader reader, int docBase) { c.SetNextReader(reader, docBase); }
public override void SetNextReader(IndexReader reader, int base_Renamed) { collector.SetNextReader(reader, base_Renamed); this.docBase = base_Renamed; }
public override void Search(Weight weight, Filter filter, Collector results) { IndexReader reader = IndexReader; Scorer scorer = weight.Scorer(reader, true, false); if (scorer == null) { return; } results.SetScorer(scorer); results.SetNextReader(reader, 0); FacetValidator validator = CreateFacetValidator(); int target = 0; bool more; if (filter == null) { more = scorer.NextDoc()!=DocIdSetIterator.NO_MORE_DOCS; while (more) { target = scorer.DocID(); if (validator.Validate(target)) { results.Collect(target); more = scorer.NextDoc()!=DocIdSetIterator.NO_MORE_DOCS; } else { target = validator.NextTarget; more = scorer.Advance(target) != DocIdSetIterator.NO_MORE_DOCS; } } return; } DocIdSetIterator filterDocIdIterator = filter.GetDocIdSet(reader).Iterator(); // CHECKME: use ConjunctionScorer here? target = filterDocIdIterator.NextDoc(); if (target == DocIdSetIterator.NO_MORE_DOCS) { return; } int doc = -1; while (true) { if (doc < target) { doc = scorer.Advance(target); if (doc == DocIdSetIterator.NO_MORE_DOCS) { break; } } if (doc == target) // permitted by filter { if (validator.Validate(doc)) { results.Collect(doc); target = filterDocIdIterator.NextDoc(); if (target == DocIdSetIterator.NO_MORE_DOCS) { break; } else { continue; } } else { // skip to the next possible docid target = validator.NextTarget; } } else // doc > target { target = doc; } target = filterDocIdIterator.Advance(target); if (target == DocIdSetIterator.NO_MORE_DOCS) { break; } } }