/// <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); }
/// <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); }