示例#1
0
        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);
        }
示例#2
0
        public override System.Collections.BitArray Bits(IndexReader reader)
        {
            SpanFilterResult result = GetCachedResult(reader);

            return(result != null?result.GetBits() : null);
        }
示例#3
0
        public override DocIdSet GetDocIdSet(IndexReader reader)
        {
            SpanFilterResult result = GetCachedResult(reader);

            return(result != null?result.GetDocIdSet() : null);
        }
示例#4
0
        public override DocIdSet GetDocIdSet(IndexReader reader)
        {
            SpanFilterResult result = BitSpans(reader);

            return(result.GetDocIdSet());
        }