Example #1
0
        private void  MergeTerms()
        {
            SegmentWriteState state = new SegmentWriteState(null, directory, segment, null, mergedDocs, 0, termIndexInterval);

            FormatPostingsFieldsConsumer consumer = new FormatPostingsFieldsWriter(state, fieldInfos);

            try
            {
                queue = new SegmentMergeQueue(readers.Count);

                MergeTermInfos(consumer);
            }
            finally
            {
                consumer.Finish();
                if (queue != null)
                {
                    queue.Close();
                }
            }
        }
Example #2
0
			internal SegmentMergeInfo[] matchingSegments; // null terminated array of matching segments
			
			public MultiTermEnum(IndexReader topReader, IndexReader[] readers, int[] starts, Term t)
			{
				this.topReader = topReader;
				queue = new SegmentMergeQueue(readers.Length);
				matchingSegments = new SegmentMergeInfo[readers.Length + 1];
				for (int i = 0; i < readers.Length; i++)
				{
					IndexReader reader = readers[i];
					TermEnum termEnum;
					
					if (t != null)
					{
						termEnum = reader.Terms(t);
					}
					else
						termEnum = reader.Terms();
					
					SegmentMergeInfo smi = new SegmentMergeInfo(starts[i], termEnum, reader);
					smi.ord = i;
					if (t == null?smi.Next():termEnum.Term() != null)
						queue.Put(smi);
					// initialize queue
					else
						smi.Close();
				}
				
				if (t != null && queue.Size() > 0)
				{
					Next();
				}
			}
Example #3
0
		private void  MergeTerms()
		{
			
			SegmentWriteState state = new SegmentWriteState(null, directory, segment, null, mergedDocs, 0, termIndexInterval);
			
			FormatPostingsFieldsConsumer consumer = new FormatPostingsFieldsWriter(state, fieldInfos);
			
			try
			{
				queue = new SegmentMergeQueue(readers.Count);
				
				MergeTermInfos(consumer);
			}
			finally
			{
				consumer.Finish();
				if (queue != null)
					queue.Close();
			}
		}