public FieldCacheTermsFilterDocIdSet(FieldCacheTermsFilter enclosingInstance, Mono.Lucene.Net.Search.StringIndex fcsi) { InitBlock(enclosingInstance); this.fcsi = fcsi; openBitSet = new OpenBitSet(this.fcsi.lookup.Length); for (int i = 0; i < Enclosing_Instance.terms.Length; i++) { int termNumber = this.fcsi.BinarySearchLookup(Enclosing_Instance.terms[i]); if (termNumber > 0) { openBitSet.FastSet(termNumber); } } }
/// <summary> Returns a DocIdSet with documents that should be /// permitted in search results. /// </summary> //@Override public override DocIdSet GetDocIdSet(IndexReader reader) { TermEnum enumerator = query.GetEnum(reader); try { // if current term in enum is null, the enum is empty -> shortcut if (enumerator.Term() == null) { return(DocIdSet.EMPTY_DOCIDSET); } // else fill into a OpenBitSet OpenBitSet bitSet = new OpenBitSet(reader.MaxDoc()); new AnonymousClassTermGenerator1(bitSet, this).Generate(query, reader, enumerator); return(bitSet); } finally { enumerator.Close(); } }
public override SpanFilterResult BitSpans(IndexReader reader) { OpenBitSet bits = new OpenBitSet(reader.MaxDoc()); Mono.Lucene.Net.Search.Spans.Spans spans = query.GetSpans(reader); System.Collections.IList tmp = new System.Collections.ArrayList(20); int currentDoc = - 1; SpanFilterResult.PositionInfo currentInfo = null; while (spans.Next()) { int doc = spans.Doc(); bits.Set(doc); if (currentDoc != doc) { currentInfo = new SpanFilterResult.PositionInfo(doc); tmp.Add(currentInfo); currentDoc = doc; } currentInfo.AddPosition(spans.Start(), spans.End()); } return new SpanFilterResult(bits, tmp); }
public override SpanFilterResult BitSpans(IndexReader reader) { OpenBitSet bits = new OpenBitSet(reader.MaxDoc()); Mono.Lucene.Net.Search.Spans.Spans spans = query.GetSpans(reader); System.Collections.IList tmp = new System.Collections.ArrayList(20); int currentDoc = -1; SpanFilterResult.PositionInfo currentInfo = null; while (spans.Next()) { int doc = spans.Doc(); bits.Set(doc); if (currentDoc != doc) { currentInfo = new SpanFilterResult.PositionInfo(doc); tmp.Add(currentInfo); currentDoc = doc; } currentInfo.AddPosition(spans.Start(), spans.End()); } return(new SpanFilterResult(bits, tmp)); }
/// <summary> Returns a DocIdSet with documents that should be /// permitted in search results. /// </summary> //@Override public override DocIdSet GetDocIdSet(IndexReader reader) { TermEnum enumerator = query.GetEnum(reader); try { // if current term in enum is null, the enum is empty -> shortcut if (enumerator.Term() == null) return DocIdSet.EMPTY_DOCIDSET; // else fill into a OpenBitSet OpenBitSet bitSet = new OpenBitSet(reader.MaxDoc()); new AnonymousClassTermGenerator1(bitSet, this).Generate(query, reader, enumerator); return bitSet; } finally { enumerator.Close(); } }
public FieldCacheTermsFilterDocIdSet(FieldCacheTermsFilter enclosingInstance, Mono.Lucene.Net.Search.StringIndex fcsi) { InitBlock(enclosingInstance); this.fcsi = fcsi; openBitSet = new OpenBitSet(this.fcsi.lookup.Length); for (int i = 0; i < Enclosing_Instance.terms.Length; i++) { int termNumber = this.fcsi.BinarySearchLookup(Enclosing_Instance.terms[i]); if (termNumber > 0) { openBitSet.FastSet(termNumber); } } }