private SpanFilterResult GetCachedResult(IndexReader reader) { object coreKey = reader.GetFieldCacheKey(); object delCoreKey = reader.HasDeletions() ? reader.GetDeletesCacheKey() : coreKey; SpanFilterResult result = (SpanFilterResult)cache.Get(reader, coreKey, delCoreKey); if (result != null) { hitCount++; return(result); } missCount++; result = filter.BitSpans(reader); cache.Put(coreKey, delCoreKey, result); return(result); }
public override System.Collections.BitArray Bits(IndexReader reader) { SpanFilterResult result = GetCachedResult(reader); return(result != null?result.GetBits() : null); }
public override DocIdSet GetDocIdSet(IndexReader reader) { SpanFilterResult result = GetCachedResult(reader); return(result != null?result.GetDocIdSet() : null); }
public override DocIdSet GetDocIdSet(IndexReader reader) { SpanFilterResult result = BitSpans(reader); return(result.GetDocIdSet()); }