Ejemplo n.º 1
0
        public BoboSearcher2(BoboIndexReader reader)
            : base(reader)
        {
            _facetCollectors = new List <FacetHitCollector>();
            var readerList = new List <IndexReader>();

            ReaderUtil.GatherSubReaders(readerList, reader);
            _subReaders = readerList.Cast <BoboIndexReader>().ToArray();
            _docStarts  = new int[_subReaders.Length];
            int maxDoc = 0;

            for (int i = 0; i < _subReaders.Length; ++i)
            {
                _docStarts[i] = maxDoc;
                maxDoc       += _subReaders[i].MaxDoc;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Find all the leaf sub-readers and wrap each in BoboIndexReader.
        /// </summary>
        /// <param name="reader">reader</param>
        /// <param name="workArea">workArea</param>
        /// <returns></returns>
        private static IndexReader[] CreateSubReaders(IndexReader reader, WorkArea workArea)
        {
            List <IndexReader> readerList = new List <IndexReader>();

            ReaderUtil.GatherSubReaders(readerList, reader);
            IndexReader[]     subReaders = (IndexReader[])readerList.ToArray();
            BoboIndexReader[] boboReaders;
            var subReaderCount = subReaders.Count();

            if (subReaders != null && subReaderCount > 0)
            {
                boboReaders = new BoboIndexReader[subReaderCount];
                for (int i = 0; i < subReaderCount; i++)
                {
                    boboReaders[i] = new BoboIndexReader(subReaders[i], null, null, workArea, true, false);
                }
            }
            else
            {
                boboReaders = new BoboIndexReader[] { new BoboIndexReader(reader, null, null, workArea, true, false) };
            }
            return(boboReaders);
        }
Ejemplo n.º 3
0
 protected internal virtual void  GatherSubReaders(System.Collections.Generic.IList <IndexReader> allSubReaders, IndexReader r)
 {
     ReaderUtil.GatherSubReaders(allSubReaders, r);
 }