24 namespace Lucene.Net.Search
99 private readonly
string field;
100 private readonly
string[] terms;
118 protected internal class FieldCacheTermsFilterDocIdSet:
DocIdSet
122 this.enclosingInstance = enclosingInstance;
124 private FieldCacheTermsFilter enclosingInstance;
125 public FieldCacheTermsFilter Enclosing_Instance
129 return enclosingInstance;
133 private readonly Lucene.Net.Search.StringIndex fcsi;
137 public FieldCacheTermsFilterDocIdSet(FieldCacheTermsFilter enclosingInstance,
StringIndex fcsi)
139 InitBlock(enclosingInstance);
141 openBitSet =
new OpenBitSet(this.fcsi.lookup.Length);
142 foreach (
string t
in Enclosing_Instance.terms)
144 int termNumber = this.fcsi.BinarySearchLookup(t);
147 openBitSet.FastSet(termNumber);
154 return new FieldCacheTermsFilterDocIdSetIterator(
this);
158 public override bool IsCacheable
163 protected internal class FieldCacheTermsFilterDocIdSetIterator:
DocIdSetIterator
165 public FieldCacheTermsFilterDocIdSetIterator(FieldCacheTermsFilterDocIdSet enclosingInstance)
167 InitBlock(enclosingInstance);
169 private void InitBlock(FieldCacheTermsFilterDocIdSet enclosingInstance)
171 this.enclosingInstance = enclosingInstance;
173 private FieldCacheTermsFilterDocIdSet enclosingInstance;
174 public FieldCacheTermsFilterDocIdSet Enclosing_Instance
178 return enclosingInstance;
182 private int doc = - 1;
184 public override int DocID()
189 public override int NextDoc()
193 while (!Enclosing_Instance.openBitSet.FastGet(Enclosing_Instance.fcsi.order[++doc]))
197 catch (IndexOutOfRangeException)
204 public override int Advance(
int target)
209 while (!Enclosing_Instance.openBitSet.FastGet(Enclosing_Instance.fcsi.order[doc]))
214 catch (IndexOutOfRangeException)