예제 #1
0
        /// <summary>
        /// 获取指定时间索引
        /// </summary>
        /// <param name="dateTime"></param>
        /// <returns></returns>
        public string GetIndex(DateTime dateTime)
        {
            switch (EsMappingType)
            {
            case EsMappingType.Default:
                EsClientProvider.Init();
                return(EsClientProvider.BaseEsConnectionSettings.EsDefaultIndex);

            case EsMappingType.New:
                return(AliasIndex);

            case EsMappingType.Hour:
                return($"{AliasIndex}_{dateTime:yyyyMMddHH}");

            case EsMappingType.Day:
                return($"{AliasIndex}_{dateTime:yyyyMMdd}");

            case EsMappingType.Month:
                return($"{AliasIndex}_{dateTime:yyyyMM}");

            case EsMappingType.Year:
                return($"{AliasIndex}_{dateTime:yyyy}");

            default:
                return(EsClientProvider.BaseEsConnectionSettings.EsDefaultIndex);
            }
        }
        /// <summary>
        /// 创建指定时间索引
        /// </summary>
        private void IndexCreateAndMapping()
        {
            var esMappingSettings = new EsCreateIndexSettings()
            {
                NumberOfShards = NumberOfShards,
                AliasIndex     = AliasIndex,
                Index          = CurrentIndex
            };

            EsClientProvider.CreateIndex(esMappingSettings, EntityMapping);
        }
        /// <summary>
        /// 创建指定时间索引
        /// </summary>
        /// <param name="setting">ElasticSearch设置</param>
        private void IndexCreateAndMapping(ElasticSearchSetting setting)
        {
            var esMappingSettings = new EsCreateIndexSettings()
            {
                Setting        = setting,
                NumberOfShards = NumberOfShards,
                AliasIndex     = AliasIndex
            };

            EsClientProvider.CreateIndex(esMappingSettings, EntityMapping);
        }
예제 #4
0
        /// <summary>
        /// 获取客户端
        /// </summary>
        /// <param name="setting">Es配置信息</param>
        /// <returns></returns>
        internal ElasticClient GetClient(ElasticSearchSetting setting)
        {
            if (!EsClientProvider.ClientDictionary.ContainsKey(setting.EsHttpAddress))
            {
                var currentIndexClientDictionary = new ConcurrentDictionary <string, ElasticClient>();
                EsClientProvider.ClientDictionary.TryAdd(setting.EsHttpAddress, currentIndexClientDictionary);
            }
            if (EsClientProvider.ClientDictionary[setting.EsHttpAddress].ContainsKey(setting.EsDefaultIndex))
            {
                return(EsClientProvider.ClientDictionary[setting.EsHttpAddress][setting.EsDefaultIndex]);
            }
            var client = EsClientProvider.Init(setting);

            EsClientProvider.ClientDictionary[setting.EsHttpAddress].TryAdd(setting.EsDefaultIndex, client);
            return(client);
        }