コード例 #1
0
        public override SeekStatus SeekCeil(BytesRef text)
        {
            int ord = Values.LookupTerm(text);

            if (ord >= 0)
            {
                CurrentOrd          = ord;
                Term_Renamed.Offset = 0;
                // TODO: is there a cleaner way?
                // term.bytes may be pointing to codec-private byte[]
                // storage, so we must force new byte[] allocation:
                Term_Renamed.Bytes = new sbyte[text.Length];
                Term_Renamed.CopyBytes(text);
                return(SeekStatus.FOUND);
            }
            else
            {
                CurrentOrd = -ord - 1;
                if (CurrentOrd == Values.ValueCount)
                {
                    return(SeekStatus.END);
                }
                else
                {
                    // TODO: hmm can we avoid this "extra" lookup?:
                    Values.LookupOrd(CurrentOrd, Term_Renamed);
                    return(SeekStatus.NOT_FOUND);
                }
            }
        }
コード例 #2
0
        public override int LookupTerm(BytesRef key)
        {
            Debug.Assert(key.IsValid());
            int result = @in.LookupTerm(key);

            Debug.Assert(result < valueCount);
            Debug.Assert(key.IsValid());
            return(result);
        }
コード例 #3
0
            public override int LookupTerm(BytesRef key)
            {
                Debug.Assert(key.Valid);
                int result = @in.LookupTerm(key);

                Debug.Assert(result < ValueCount_Renamed);
                Debug.Assert(key.Valid);
                return(result);
            }
コード例 #4
0
        public override DocIdSet GetDocIdSet(AtomicReaderContext context, Bits acceptDocs)
        {
            SortedDocValues fcsi = FieldCache.GetTermsIndex((context.AtomicReader), Field);
            FixedBitSet     bits = new FixedBitSet(fcsi.ValueCount);

            for (int i = 0; i < Terms.Length; i++)
            {
                int ord = fcsi.LookupTerm(Terms[i]);
                if (ord >= 0)
                {
                    bits.Set(ord);
                }
            }
            return(new FieldCacheDocIdSetAnonymousInnerClassHelper(this, context.Reader.MaxDoc, acceptDocs, fcsi, bits));
        }
コード例 #5
0
        public override int LookupTerm(BytesRef key)
        {
            if (Debugging.AssertsEnabled)
            {
                Debugging.Assert(key.IsValid());
            }
            int result = @in.LookupTerm(key);

            if (Debugging.AssertsEnabled)
            {
                Debugging.Assert(result < valueCount);
            }
            if (Debugging.AssertsEnabled)
            {
                Debugging.Assert(key.IsValid());
            }
            return(result);
        }
コード例 #6
0
 public override long LookupTerm(BytesRef key)
 {
     return(@in.LookupTerm(key));
 }
コード例 #7
0
		    /// <exception cref="System.IO.IOException"></exception>
			public override void SetNextReader(AtomicReaderContext context)
			{
				if (segmentFacetCounts != null)
				{
					segmentResults.AddItem(((TermGroupFacetCollector.SV.SegmentResult)CreateSegmentResult
						()));
				}
				groupFieldTermsIndex = FieldCache.DEFAULT.GetTermsIndex(((AtomicReader)context.Reader
					()), groupField);
				facetFieldTermsIndex = FieldCache.DEFAULT.GetTermsIndex(((AtomicReader)context.Reader
					()), facetField);
				// 1+ to allow for the -1 "not set":
				segmentFacetCounts = new int[facetFieldTermsIndex.GetValueCount() + 1];
				segmentTotalCount = 0;
				segmentGroupedFacetHits.Clear();
				foreach (GroupedFacetHit groupedFacetHit in groupedFacetHits)
				{
					int facetOrd = groupedFacetHit.facetValue == null ? -1 : facetFieldTermsIndex.LookupTerm
						(groupedFacetHit.facetValue);
					if (groupedFacetHit.facetValue != null && facetOrd < 0)
					{
						continue;
					}
					int groupOrd = groupedFacetHit.groupValue == null ? -1 : groupFieldTermsIndex.LookupTerm
						(groupedFacetHit.groupValue);
					if (groupedFacetHit.groupValue != null && groupOrd < 0)
					{
						continue;
					}
					int segmentGroupedFacetsIndex = groupOrd * (facetFieldTermsIndex.GetValueCount() 
						+ 1) + facetOrd;
					segmentGroupedFacetHits.Put(segmentGroupedFacetsIndex);
				}
				if (facetPrefix != null)
				{
					startFacetOrd = facetFieldTermsIndex.LookupTerm(facetPrefix);
					if (startFacetOrd < 0)
					{
						// Points to the ord one higher than facetPrefix
						startFacetOrd = -startFacetOrd - 1;
					}
					BytesRef facetEndPrefix = BytesRef.DeepCopyOf(facetPrefix);
					facetEndPrefix.Append(UnicodeUtil.BIG_TERM);
					endFacetOrd = facetFieldTermsIndex.LookupTerm(facetEndPrefix);
					endFacetOrd < 0 = -endFacetOrd - 1;
				}
				else
				{
					// Points to the ord one higher than facetEndPrefix
					startFacetOrd = -1;
					endFacetOrd = facetFieldTermsIndex.GetValueCount();
				}
			}