示例#1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="name">name of the Geo Facet</param>
        /// <param name="dataCache">The data cache for the Geo Facet</param>
        /// <param name="docBase">the base doc id</param>
        /// <param name="fspec">the facet spec for this facet</param>
        /// <param name="predefinedRanges">List of ranges, where each range looks like &lt;lat, lon: rad&gt;</param>
        /// <param name="miles">variable to specify if the geo distance calculations are in miles. False indicates distance calculation is in kilometers</param>
        public GeoFacetCountCollector(string name, GeoFacetHandler.GeoFacetData dataCache, int docBase,
                                      FacetSpec fspec, IList <string> predefinedRanges, bool miles)
        {
            m_name             = name;
            m_xvals            = dataCache.xValArray;
            m_yvals            = dataCache.yValArray;
            m_zvals            = dataCache.zValArray;
            m_spec             = fspec;
            m_predefinedRanges = new TermStringList();
            predefinedRanges.Sort();
            m_predefinedRanges.AddAll(predefinedRanges);
            m_countlength = predefinedRanges.Count;
            m_count       = new LazyBigInt32Array(m_countlength);
            m_ranges      = new GeoRange[predefinedRanges.Count];
            int index = 0;

            foreach (string range in predefinedRanges)
            {
                m_ranges[index++] = Parse(range);
            }
            m_miles = miles;
        }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="name">name of the Geo Facet</param>
 /// <param name="dataCache">The data cache for the Geo Facet</param>
 /// <param name="docBase">the base doc id</param>
 /// <param name="fspec">the facet spec for this facet</param>
 /// <param name="predefinedRanges">List of ranges, where each range looks like &lt;lat, lon: rad&gt;</param>
 /// <param name="miles">variable to specify if the geo distance calculations are in miles. False indicates distance calculation is in kilometers</param>
 public GeoFacetCountCollector(string name, GeoFacetHandler.GeoFacetData dataCache,
     int docBase, FacetSpec fspec, IEnumerable<string> predefinedRanges, bool miles)
 {
     _name = name;
     _dataCache = dataCache;
     _xvals = dataCache.xValArray;
     _yvals = dataCache.yValArray;
     _zvals = dataCache.zValArray;
     _spec = fspec;
     _predefinedRanges = new TermStringList();
     var predefinedTemp = new List<string>(predefinedRanges);
     predefinedTemp.Sort();
     _predefinedRanges.AddAll(predefinedTemp);
     _docBase = docBase;
     _countlength = predefinedTemp.Count;
     _count = new LazyBigIntArray(_countlength);
     _ranges = new GeoRange[predefinedTemp.Count];
     int index = 0;
     foreach (string range in predefinedTemp)
     {
         _ranges[index++] = Parse(range);
     }
     _miles = miles;
 }