예제 #1
0
        public override int DocFreq(Term term)
        {
            EnsureOpen();
            IndexReader reader = ((IndexReader)fieldToReader[term.Field()]);

            return(reader == null?0:reader.DocFreq(term));
        }
예제 #2
0
            public override bool Next()
            {
                if (termEnum == null)
                {
                    return(false);
                }

                // another term in this field?
                if (termEnum.Next() && (System.Object)termEnum.Term().Field() == (System.Object)field)
                {
                    return(true);                 // yes, keep going
                }
                termEnum.Close();                 // close old termEnum

                // find the next field with terms, if any
                if (fieldIterator == null)
                {
                    System.Collections.Comparer   comparer = System.Collections.Comparer.Default;
                    System.Collections.SortedList newList  = new System.Collections.SortedList();
                    if (Enclosing_Instance.fieldToReader != null)
                    {
                        if (Enclosing_Instance.fieldToReader.Count > 0)
                        {
                            int index = 0;
                            while (comparer.Compare(Enclosing_Instance.fieldToReader.GetKey(index), field) < 0)
                            {
                                index++;
                            }
                            for (; index < Enclosing_Instance.fieldToReader.Count; index++)
                            {
                                newList.Add(Enclosing_Instance.fieldToReader.GetKey(index), Enclosing_Instance.fieldToReader[Enclosing_Instance.fieldToReader.GetKey(index)]);
                            }
                        }
                    }

                    fieldIterator = newList.Keys.GetEnumerator();
                    fieldIterator.MoveNext();
                    System.Object generatedAux = fieldIterator.Current;                     // Skip field to get next one
                }
                while (fieldIterator.MoveNext())
                {
                    field    = ((System.String)fieldIterator.Current);
                    termEnum = ((IndexReader)Enclosing_Instance.fieldToReader[field]).Terms(new Term(field));
                    Term term = termEnum.Term();
                    if (term != null && (System.Object)term.Field() == (System.Object)field)
                    {
                        return(true);
                    }
                    else
                    {
                        termEnum.Close();
                    }
                }

                return(false);                // no more fields
            }
예제 #3
0
            public ParallelTermEnum(ParallelReader enclosingInstance, Term term)
            {
                InitBlock(enclosingInstance);
                field = term.Field();
                IndexReader reader = ((IndexReader)Enclosing_Instance.fieldToReader[field]);

                if (reader != null)
                {
                    termEnum = reader.Terms(term);
                }
            }
예제 #4
0
        public void  Set(Term term)
        {
            if (term == null)
            {
                Reset();
                return;
            }
            System.String termText = term.Text();
            int           termLen  = termText.Length;

            text.SetLength(termLen);
            SupportClass.TextSupport.GetCharsFromString(termText, 0, termLen, text.result, 0);
            dirty     = true;
            field     = term.Field();
            this.term = term;
        }
예제 #5
0
		public void  Set(Term term)
		{
			if (term == null)
			{
				Reset();
				return ;
			}
			System.String termText = term.Text();
			int termLen = termText.Length;
			text.SetLength(termLen);
			SupportClass.TextSupport.GetCharsFromString(termText, 0, termLen, text.result, 0);
			dirty = true;
			field = term.Field();
			this.term = term;
		}
예제 #6
0
			public override void  Seek(Term term)
			{
				IndexReader reader = ((IndexReader) Enclosing_Instance.fieldToReader[term.Field()]);
				termDocs = reader != null?reader.TermPositions(term):null;
			}
예제 #7
0
			public virtual void  Seek(Term term)
			{
				IndexReader reader = ((IndexReader) Enclosing_Instance.fieldToReader[term.Field()]);
				termDocs = reader != null?reader.TermDocs(term):null;
			}
예제 #8
0
			public ParallelTermEnum(ParallelReader enclosingInstance, Term term)
			{
				InitBlock(enclosingInstance);
				field = term.Field();
				IndexReader reader = ((IndexReader) Enclosing_Instance.fieldToReader[field]);
				if (reader != null)
					termEnum = reader.Terms(term);
			}
예제 #9
0
		public override int DocFreq(Term term)
		{
			EnsureOpen();
			IndexReader reader = ((IndexReader) fieldToReader[term.Field()]);
			return reader == null?0:reader.DocFreq(term);
		}
예제 #10
0
            public override void  Seek(Term term)
            {
                IndexReader reader = ((IndexReader)Enclosing_Instance.fieldToReader[term.Field()]);

                termDocs = reader != null?reader.TermPositions(term) : null;
            }
예제 #11
0
            public virtual void  Seek(Term term)
            {
                IndexReader reader = ((IndexReader)Enclosing_Instance.fieldToReader[term.Field()]);

                termDocs = reader != null?reader.TermDocs(term) : null;
            }