protected OpenBitSetDISI CalculateOpenBitSetDisi(string facetAttributeFieldName, string value)
        {
            var facetQuery       = new TermQuery(new Term(facetAttributeFieldName, value));
            var facetQueryFilter = new QueryWrapperFilter(facetQuery);

            return(new OpenBitSetDISI(facetQueryFilter.GetDocIdSet(IndexReader).Iterator(), IndexReader.MaxDoc));
        }
예제 #2
0
        /// <inheritdoc />
        public ISearchBit GetBits()
        {
            var query                  = CreateQuery();
            var filter                 = new QueryWrapperFilter(query);
            var indexSearcher          = _indexSearcherFactory();
            var context                = (AtomicReaderContext)indexSearcher.IndexReader.Context;
            var bits                   = filter.GetDocIdSet(context, context.AtomicReader.LiveDocs);
            var documentSetIDInterator = new OpenBitSetDISI(bits.GetIterator(), indexSearcher.IndexReader.MaxDoc);

            return(new SearchBit(documentSetIDInterator));
        }
        public ISearchBits GetBits()
        {
            var           query = CreateQuery();
            IndexSearcher searcher;

            try {
                searcher = new IndexSearcher(_directory, true);
            }
            catch {
                // index might not exist if it has been rebuilt
                Logger.Information("Attempt to read a none existing index");
                return(null);
            }

            using (searcher) {
                var filter = new QueryWrapperFilter(query);
                var bits   = filter.GetDocIdSet(searcher.IndexReader);
                var disi   = new OpenBitSetDISI(bits.Iterator(), searcher.MaxDoc);
                return(new SearchBits(disi));
            }
        }