public static IDictionary<string, Filter> CreateFilters(IndexReader reader, IDictionary<string, HashSet<string>> feeds) { var bitSetLookup = new Dictionary<string, IDictionary<string, OpenBitSet>>(StringComparer.OrdinalIgnoreCase); foreach (var key in feeds.Keys) { bitSetLookup[key] = new Dictionary<string, OpenBitSet>(); foreach (SegmentReader segmentReader in reader.GetSequentialSubReaders()) { bitSetLookup[key][segmentReader.SegmentName] = new OpenBitSet(); } } foreach (SegmentReader segmentReader in reader.GetSequentialSubReaders()) { CreateOpenBitSets(segmentReader, feeds, bitSetLookup); } var filters = new Dictionary<string, Filter>(StringComparer.OrdinalIgnoreCase); foreach (var key in feeds.Keys) { filters[key] = new OpenBitSetLookupFilter(bitSetLookup[key]); } return filters; }
public void End(IndexReader indexReader) { Result = new Dictionary <string, Filter>(StringComparer.OrdinalIgnoreCase); foreach (var key in _feeds.Keys) { Result[key] = new OpenBitSetLookupFilter(_bitSetLookup[key]); } }
public void End(IndexReader indexReader) { Result = new Dictionary<string, Filter>(StringComparer.OrdinalIgnoreCase); foreach (var key in _feeds.Keys) { Result[key] = new OpenBitSetLookupFilter(_bitSetLookup[key]); } }