コード例 #1
0
        private void CollectTotalGroups()
        {
            if (_facetCountCollector is GroupByFacetCountCollector)
            {
                _totalGroups += ((GroupByFacetCountCollector)_facetCountCollector).GetTotalGroups();
                return;
            }

            BigSegmentedArray count = _facetCountCollector.GetCountDistribution();

            for (int i = 0; i < count.Size(); i++)
            {
                int c = count.Get(i);
                if (c > 0)
                {
                    ++_totalGroups;
                }
            }
        }
コード例 #2
0
 public virtual FacetCountStatistics generateStatistic(IFacetCountCollector countHitCollector, int n)
 {
     return generateStatistic(countHitCollector.GetCountDistribution(), n);
 }
コード例 #3
0
 public virtual FacetCountStatistics GenerateStatistic(IFacetCountCollector countHitCollector, int n)
 {
     return(GenerateStatistic(BigIntArray.ToArray(countHitCollector.GetCountDistribution()), n));
 }
コード例 #4
0
            private void Aggregate()
            {
                if (m_isAggregated)
                {
                    return;
                }

                m_isAggregated = true;

                int startIdx = m_valArray.IndexOf(m_start);

                if (startIdx < 0)
                {
                    startIdx = -(startIdx + 1);
                }

                int endIdx = m_valArray.IndexOf(m_end);

                if (endIdx < 0)
                {
                    endIdx = -(endIdx + 1);
                }

                BigSegmentedArray baseCounts = m_baseCollector.GetCountDistribution();

                if (m_start is long)
                {
                    long          start    = Convert.ToInt64(m_start);
                    long          unit     = Convert.ToInt64(m_unit);
                    TermInt64List valArray = (TermInt64List)m_valArray;
                    for (int i = startIdx; i < endIdx; i++)
                    {
                        long val = valArray.GetPrimitiveValue(i);
                        int  idx = (int)((val - start) / unit);
                        if (idx >= 0 && idx < m_count.Length)
                        {
                            m_count.Add(idx, m_count.Get(idx) + baseCounts.Get(i));
                        }
                    }
                }
                else if (m_start is int)
                {
                    int           start    = Convert.ToInt32(m_start);
                    int           unit     = Convert.ToInt32(m_unit);
                    TermInt32List valArray = (TermInt32List)m_valArray;
                    for (int i = startIdx; i < endIdx; i++)
                    {
                        int val = valArray.GetPrimitiveValue(i);
                        int idx = ((val - start) / unit);
                        if (idx >= 0 && idx < m_count.Length)
                        {
                            m_count.Add(idx, m_count.Get(idx) + baseCounts.Get(i));
                        }
                    }
                }
                else
                {
                    double start = Convert.ToDouble(m_start);
                    double unit  = Convert.ToDouble(m_unit);
                    for (int i = startIdx; i < endIdx; i++)
                    {
                        double val = (double)m_valArray.GetRawValue(i);
                        int    idx = (int)((val - start) / unit);
                        if (idx >= 0 && idx < m_count.Length)
                        {
                            m_count.Add(idx, m_count.Get(idx) + baseCounts.Get(i));
                        }
                    }
                }
            }
コード例 #5
0
 public virtual FacetCountStatistics GenerateStatistic(IFacetCountCollector countHitCollector, int n)
 {
     return GenerateStatistic(BigIntArray.ToArray(countHitCollector.GetCountDistribution()), n);
 }