public RangeFacetCountCollector(string name, FacetDataCache dataCache, int docBase, FacetSpec ospec, IEnumerable <string> predefinedRanges)
        {
            _name        = name;
            _dataCache   = dataCache;
            _countLength = _dataCache.Freqs.Length;
            _count       = new LazyBigIntArray(_countLength);
            _array       = _dataCache.OrderArray;
            _docBase     = docBase;
            _ospec       = ospec;
            if (predefinedRanges != null)
            {
                _predefinedRanges = new TermStringList();
                var tempList = new List <string>(predefinedRanges);
                tempList.Sort();
                _predefinedRanges.AddAll(tempList);
            }
            else
            {
                _predefinedRanges = null;
            }

            if (_predefinedRanges != null)
            {
                _predefinedRangeIndexes = new int[_predefinedRanges.Count()][];
                int i = 0;
                foreach (string range in this._predefinedRanges)
                {
                    _predefinedRangeIndexes[i++] = FacetRangeFilter.Parse(this._dataCache, range);
                }
            }
        }
Exemplo n.º 2
0
        public RangeFacetCountCollector(string name, FacetDataCache dataCache, int docBase, FacetSpec ospec, IList <string> predefinedRanges)
        {
            m_name        = name;
            m_dataCache   = dataCache;
            m_countLength = m_dataCache.Freqs.Length;
            m_count       = new LazyBigInt32Array(m_countLength);
            m_array       = m_dataCache.OrderArray;
            m_ospec       = ospec;
            if (predefinedRanges != null)
            {
                m_predefinedRanges = new TermStringList();
                predefinedRanges.Sort();
                m_predefinedRanges.AddAll(predefinedRanges);
            }
            else
            {
                m_predefinedRanges = null;
            }

            if (m_predefinedRanges != null)
            {
                m_predefinedRangeIndexes = new int[m_predefinedRanges.Count][];
                int i = 0;
                foreach (string range in this.m_predefinedRanges)
                {
                    m_predefinedRangeIndexes[i++] = FacetRangeFilter.Parse(this.m_dataCache, range);
                }
            }
        }
        public virtual int GetFacetHitsCount(object value)
        {
            int[] range = FacetRangeFilter.Parse(_dataCache, (string)value);
            int   sum   = 0;

            if (range != null)
            {
                for (int i = range[0]; i <= range[1]; ++i)
                {
                    sum += _count.Get(i);
                }
            }
            return(sum);
        }
        public virtual int GetFacetHitsCount(object value)
        {
            int[] range = FacetRangeFilter.Parse(_latDataCache, (string)value);

            if (range != null)
            {
                int sum = 0;
                for (int i = range[0]; i <= range[1]; ++i)
                {
                    sum += _latCount[i];
                }
                return(sum);
            }
            return(0);
        }
        public virtual BrowseFacet GetFacet(string value)
        {
            BrowseFacet facet = null;

            int[] range = FacetRangeFilter.Parse(_dataCache, value);
            if (range != null)
            {
                int sum = 0;
                for (int i = range[0]; i <= range[1]; ++i)
                {
                    sum += _count.Get(i);
                }
                facet = new BrowseFacet(value, sum);
            }
            return(facet);
        }