Example #1
0
 public FieldCacheTermsFilterDocIdSet(FieldCacheTermsFilter enclosingInstance, Mono.Lucene.Net.Search.StringIndex fcsi)
 {
     InitBlock(enclosingInstance);
     this.fcsi  = fcsi;
     openBitSet = new OpenBitSet(this.fcsi.lookup.Length);
     for (int i = 0; i < Enclosing_Instance.terms.Length; i++)
     {
         int termNumber = this.fcsi.BinarySearchLookup(Enclosing_Instance.terms[i]);
         if (termNumber > 0)
         {
             openBitSet.FastSet(termNumber);
         }
     }
 }
        /// <summary> Returns a DocIdSet with documents that should be
        /// permitted in search results.
        /// </summary>
        //@Override
        public override DocIdSet GetDocIdSet(IndexReader reader)
        {
            TermEnum enumerator = query.GetEnum(reader);

            try
            {
                // if current term in enum is null, the enum is empty -> shortcut
                if (enumerator.Term() == null)
                {
                    return(DocIdSet.EMPTY_DOCIDSET);
                }
                // else fill into a OpenBitSet
                OpenBitSet bitSet = new OpenBitSet(reader.MaxDoc());
                new AnonymousClassTermGenerator1(bitSet, this).Generate(query, reader, enumerator);
                return(bitSet);
            }
            finally
            {
                enumerator.Close();
            }
        }
Example #3
0
		public override SpanFilterResult BitSpans(IndexReader reader)
		{
			
			OpenBitSet bits = new OpenBitSet(reader.MaxDoc());
			Mono.Lucene.Net.Search.Spans.Spans spans = query.GetSpans(reader);
			System.Collections.IList tmp = new System.Collections.ArrayList(20);
			int currentDoc = - 1;
			SpanFilterResult.PositionInfo currentInfo = null;
			while (spans.Next())
			{
				int doc = spans.Doc();
				bits.Set(doc);
				if (currentDoc != doc)
				{
					currentInfo = new SpanFilterResult.PositionInfo(doc);
					tmp.Add(currentInfo);
					currentDoc = doc;
				}
				currentInfo.AddPosition(spans.Start(), spans.End());
			}
			return new SpanFilterResult(bits, tmp);
		}
Example #4
0
        public override SpanFilterResult BitSpans(IndexReader reader)
        {
            OpenBitSet bits = new OpenBitSet(reader.MaxDoc());

            Mono.Lucene.Net.Search.Spans.Spans spans = query.GetSpans(reader);
            System.Collections.IList           tmp   = new System.Collections.ArrayList(20);
            int currentDoc = -1;

            SpanFilterResult.PositionInfo currentInfo = null;
            while (spans.Next())
            {
                int doc = spans.Doc();
                bits.Set(doc);
                if (currentDoc != doc)
                {
                    currentInfo = new SpanFilterResult.PositionInfo(doc);
                    tmp.Add(currentInfo);
                    currentDoc = doc;
                }
                currentInfo.AddPosition(spans.Start(), spans.End());
            }
            return(new SpanFilterResult(bits, tmp));
        }
		/// <summary> Returns a DocIdSet with documents that should be
		/// permitted in search results.
		/// </summary>
		//@Override
		public override DocIdSet GetDocIdSet(IndexReader reader)
		{
			TermEnum enumerator = query.GetEnum(reader);
			try
			{
				// if current term in enum is null, the enum is empty -> shortcut
				if (enumerator.Term() == null)
					return DocIdSet.EMPTY_DOCIDSET;
				// else fill into a OpenBitSet
				OpenBitSet bitSet = new OpenBitSet(reader.MaxDoc());
				new AnonymousClassTermGenerator1(bitSet, this).Generate(query, reader, enumerator);
				return bitSet;
			}
			finally
			{
				enumerator.Close();
			}
		}
Example #6
0
			public FieldCacheTermsFilterDocIdSet(FieldCacheTermsFilter enclosingInstance, Mono.Lucene.Net.Search.StringIndex fcsi)
			{
				InitBlock(enclosingInstance);
				this.fcsi = fcsi;
				openBitSet = new OpenBitSet(this.fcsi.lookup.Length);
				for (int i = 0; i < Enclosing_Instance.terms.Length; i++)
				{
					int termNumber = this.fcsi.BinarySearchLookup(Enclosing_Instance.terms[i]);
					if (termNumber > 0)
					{
						openBitSet.FastSet(termNumber);
					}
				}
			}