Exemplo n.º 1
0
 public BitSetRandomAccessDocIdSet(bool multi, MultiValueFacetDataCache multiCache, OpenBitSet openBitSet, FacetDataCache dataCache)
 {
     m_multi      = multi;
     m_multiCache = multiCache;
     m_openBitSet = openBitSet;
     m_dataCache  = dataCache;
 }
Exemplo n.º 2
0
        public override double GetFacetSelectivity(BoboSegmentReader reader)
        {
            double selectivity = 0;
            MultiValueFacetDataCache dataCache = m_facetHandler.GetFacetData <MultiValueFacetDataCache>(reader);

            int[] idxes = m_valueConverter.Convert(dataCache, m_vals);
            if (idxes == null)
            {
                return(0.0);
            }
            int accumFreq = 0;

            foreach (int idx in idxes)
            {
                accumFreq += dataCache.Freqs[idx];
            }
            int total = reader.MaxDoc;

            selectivity = (double)accumFreq / (double)total;
            if (selectivity > 0.999)
            {
                selectivity = 1.0;
            }
            return(selectivity);
        }
Exemplo n.º 3
0
        public override RandomAccessDocIdSet GetRandomAccessDocIdSet(BoboSegmentReader reader)
        {
            MultiValueFacetDataCache dataCache = m_facetHandler.GetFacetData <MultiValueFacetDataCache>(reader);

            int[] index = m_valueConverter.Convert(dataCache, m_vals);
            //BigNestedIntArray nestedArray = dataCache.NestedArray;
            OpenBitSet bitset = new OpenBitSet(dataCache.ValArray.Count);

            foreach (int i in index)
            {
                bitset.FastSet(i);
            }

            if (m_takeCompliment)
            {
                // flip the bits
                int size = dataCache.ValArray.Count;
                for (int i = 0; i < size; ++i)
                {
                    bitset.FastFlip(i);
                }
            }

            long count = bitset.Cardinality();

            if (count == 0)
            {
                return(new EmptyRandomAccessDocIdSet());
            }
            else
            {
                return(new MultiRandomAccessDocIdSet(dataCache, bitset));
            }
        }
            public override IFacetCountCollector GetFacetCountCollector(BoboSegmentReader reader, int docBase)
            {
                MultiValueFacetDataCache dataCache    = m_parent.GetFacetData <MultiValueFacetDataCache>(reader);
                BigNestedInt32Array      _nestedArray = dataCache.NestedArray;

                return(new MultiRangeFacetCountCollector(m_parent.Name, dataCache, docBase, this.m_ospec, m_parent.m_predefinedRanges, _nestedArray));
            }
        public override BoboDocScorer GetDocScorer(BoboSegmentReader reader, IFacetTermScoringFunctionFactory scoringFunctionFactory,
                                                   IDictionary <string, float> boostMap)
        {
            MultiValueFacetDataCache dataCache = GetFacetData <MultiValueFacetDataCache>(reader);

            float[] boostList = BoboDocScorer.BuildBoostList(dataCache.ValArray, boostMap);
            return(new MultiValueFacetHandler.MultiValueDocScorer(dataCache, scoringFunctionFactory, boostList));
        }
Exemplo n.º 6
0
 public MultiValueFacetCountCollector(string name,
                                      MultiValueFacetDataCache dataCache,
                                      int docBase,
                                      BrowseSelection sel,
                                      FacetSpec ospec)
     : base(name, dataCache, docBase, sel, ospec)
 {
     _array = dataCache.NestedArray;
 }
        public override object[] GetRawFieldValues(BoboSegmentReader reader, int id)
        {
            MultiValueFacetDataCache dataCache = GetFacetData <MultiValueFacetDataCache>(reader);

            if (dataCache != null)
            {
                return(dataCache.NestedArray.GetRawData(id, dataCache.ValArray));
            }
            return(new string[0]);
        }
Exemplo n.º 8
0
        public override string[] GetFieldValues(BoboIndexReader reader, int id)
        {
            MultiValueFacetDataCache dataCache = GetFacetData <MultiValueFacetDataCache>(reader);

            if (dataCache != null)
            {
                return(dataCache.NestedArray.GetTranslatedData(id, dataCache.ValArray));
            }
            return(new string[0]);
        }
Exemplo n.º 9
0
            public override IFacetCountCollector GetFacetCountCollector(BoboIndexReader reader, int docBase)
            {
                int facetsPerKey = _parent.GetFacetsPerKey(_browseSelection);

                if (_ospec.Properties != null && _ospec.Properties.ContainsKey(MAX_FACETS_PER_KEY_PROP_NAME))
                {
                    facetsPerKey = int.Parse(_ospec.Properties.Get(MAX_FACETS_PER_KEY_PROP_NAME));
                }
                MultiValueFacetDataCache dataCache = (MultiValueFacetDataCache)reader.GetFacetData(_parent.Name);

                return(new AttributesFacetCountCollector(_parent, _parent.Name, dataCache, docBase, _browseSelection, _ospec, facetsPerKey, _parent.GetSeparator(_browseSelection)));
            }
Exemplo n.º 10
0
 internal MultiFacetRangeDocIdSetIterator(int start, int end, MultiValueFacetDataCache dataCache)
 {
     m_start = start;
     m_end   = end;
     for (int i = start; i <= end; ++i)
     {
         m_minID = Math.Min(m_minID, dataCache.MinIDs[i]);
         m_maxID = Math.Max(m_maxID, dataCache.MaxIDs[i]);
     }
     m_doc         = Math.Max(-1, m_minID - 1);
     m_nestedArray = dataCache.NestedArray;
 }
 public AttributesFacetCountCollector(AttributesFacetHandler attributesFacetHandler, string name, MultiValueFacetDataCache dataCache, int docBase, BrowseSelection browseSelection, FacetSpec ospec, int numFacetsPerKey, char separator)
     : base(name, dataCache, docBase, browseSelection, ospec)
 {
     this.attributesFacetHandler = attributesFacetHandler;
     this.dataCache       = dataCache;
     this.numFacetsPerKey = numFacetsPerKey;
     this.separator       = separator;
     //_array = dataCache.NestedArray; // NOT USED
     if (browseSelection != null)
     {
         values = browseSelection.Values;
     }
 }
Exemplo n.º 12
0
        public override RandomAccessDocIdSet GetRandomAccessDocIdSet(BoboIndexReader reader)
        {
            MultiValueFacetDataCache dataCache = (MultiValueFacetDataCache)multiDataCacheBuilder.Build(reader);
            int index = dataCache.ValArray.IndexOf(_val);

            if (index < 0)
            {
                return(EmptyDocIdSet.Instance);
            }
            else
            {
                return(new MultiValueRandomAccessDocIdSet(dataCache, index));
            }
        }
        public override FacetDataCache Load(BoboSegmentReader reader, BoboSegmentReader.WorkArea workArea)
        {
            MultiValueFacetDataCache dataCache = new MultiValueFacetDataCache();

            dataCache.MaxItems = maxItems;
            if (m_sizePayloadTerm == null)
            {
                dataCache.Load(m_indexFieldName, reader, m_termListFactory, workArea);
            }
            else
            {
                dataCache.Load(m_indexFieldName, reader, m_termListFactory, m_sizePayloadTerm);
            }
            return(dataCache);
        }
Exemplo n.º 14
0
 public override FacetDataCache Load(BoboIndexReader reader)
 {
     if (!_multiValue)
     {
         FacetDataCache dataCache = new FacetDataCache();
         dataCache.Load(_indexedName, reader, _termListFactory);
         return(dataCache);
     }
     else
     {
         MultiValueFacetDataCache dataCache = new MultiValueFacetDataCache();
         dataCache.Load(_indexedName, reader, _termListFactory);
         return(dataCache);
     }
 }
Exemplo n.º 15
0
        public override RandomAccessDocIdSet GetRandomAccessDocIdSet(BoboSegmentReader reader)
        {
            FacetDataCache dataCache  = m_facetDataCacheBuilder.Build(reader);
            OpenBitSet     openBitSet = GetBitSet(dataCache);
            long           count      = openBitSet.Cardinality();

            if (count == 0)
            {
                return(EmptyDocIdSet.Instance);
            }
            else
            {
                bool multi = dataCache is MultiValueFacetDataCache;
                MultiValueFacetDataCache multiCache = multi ? (MultiValueFacetDataCache)dataCache : null;
                return(new BitSetRandomAccessDocIdSet(multi, multiCache, openBitSet, dataCache));
            }
        }
Exemplo n.º 16
0
 public MultiRandomAccessDocIdSet(MultiValueFacetDataCache dataCache, OpenBitSet bitset)
 {
     this.m_dataCache   = dataCache;
     this.m_bitset      = bitset;
     this.m_nestedArray = dataCache.NestedArray;
 }
 public MultiRangeFacetCountCollector(string name, MultiValueFacetDataCache dataCache,
                                      int docBase, FacetSpec ospec, IList <string> predefinedRanges, BigNestedInt32Array nestedArray)
     : base(name, dataCache, docBase, ospec, predefinedRanges)
 {
     m_nestedArray = nestedArray;
 }
Exemplo n.º 18
0
 public MultiValueFacetDocIdSetIterator(MultiValueFacetDataCache dataCache, int index)
     : base(dataCache, index)
 {
     _nestedArray = dataCache.NestedArray;
 }
Exemplo n.º 19
0
 public MultiValueRandomAccessDocIdSet(MultiValueFacetDataCache dataCache, int index)
 {
     _dataCache   = dataCache;
     _index       = index;
     _nestedArray = dataCache.NestedArray;
 }
Exemplo n.º 20
0
            public override IFacetCountCollector GetFacetCountCollector(BoboIndexReader reader, int docBase)
            {
                MultiValueFacetDataCache dataCache = _parent.GetFacetData <MultiValueFacetDataCache>(reader);

                return(new MultiValueFacetCountCollector(_name, dataCache, docBase, _sel, _ospec));
            }
Exemplo n.º 21
0
 public MultiValueDocScorer(MultiValueFacetDataCache dataCache, IFacetTermScoringFunctionFactory scoreFunctionFactory, float[] boostList)
     : base(scoreFunctionFactory.GetFacetTermScoringFunction(dataCache.ValArray.Count, dataCache.NestedArray.Size), boostList)
 {
     _dataCache = dataCache;
     _array     = _dataCache.NestedArray;
 }
Exemplo n.º 22
0
 public MultiValueOrFacetDocIdSetIterator(MultiValueFacetDataCache dataCache, OpenBitSet bs)
     : base(dataCache, bs)
 {
     m_nestedArray = dataCache.NestedArray;
 }
            public override IFacetCountCollector GetFacetCountCollector(BoboSegmentReader reader, int docBase)
            {
                MultiValueFacetDataCache dataCache = m_parent.GetFacetData <MultiValueFacetDataCache>(reader);

                return(new MultiValueFacetCountCollector(m_name, dataCache, docBase, m_sel, m_ospec));
            }