package ini import ( "context" "git.ichub.com/general/webcli120/goconfig/ichublog/golog" _ "github.com/jinzhu/gorm" "icd/cms/cmsiface" "icd/cms/shop/entity" "icd/cms/shop/model" "icd/plugins/elastic" es "icd/plugins/elasticsearch" "reflect" ) func InitEs() { initEs1() initEs2() } func NewIndexMappingPtr[T cmsiface.IndexMapping]() T { var index T var typeOf = reflect.TypeOf(index) if typeOf.Kind() == reflect.Ptr { typeOf = typeOf.Elem() } var value = reflect.New(typeOf) return value.Interface().(T) } func CreateIndex[T cmsiface.IndexMapping]() { ctx := context.Background() var index = NewIndexMappingPtr[T]() existsContext, _ := elastic.GetElastic().IndexExists(index.TableName()).Do(ctx) if existsContext { golog.Info("索引已存在", index.TableName()) return } _, err := es.Elastic().CreateIndex(index.TableName()).BodyString(index.GetMapping()).Do(ctx) if err != nil { golog.Error(err, index.TableName()) return } golog.Info("创建索引成功", index.TableName()) } // 初始化索引表 func initEs1() { //创建内容 CreateIndex[*entity.ContentListEs]() //创建栏目 CreateIndex[*model.CmsColumnEs]() //创建广告 CreateIndex[*model.CmsScheduleEs]() //创建广告 CreateIndex[*model.CmsScheduleBroadEs]() //创建排期 CreateIndex[*model.CmsScheduleBackEs]() //创建栏目订阅 CreateIndex[*model.CmsSubscriberEs]() //创建关键词订阅 CreateIndex[*model.CmsKeywordEs]() //创建敏感词订阅 CreateIndex[*model.CmsSensitiveWordsEs]() //优化首页根据栏目ID找到栏目信息 CreateIndex[*model.CmsHomeColumnEs]() //应答 CreateIndex[*entity.AnswerSheetEs]() //广告展出 CreateIndex[*model.PersonasLineES]() //我的偏好 CreateIndex[*entity.CmsPreferenceEs]() //广告类 CreateIndex[*model.CmsSlideTypeES]() //广告项 CreateIndex[*model.CmsSlideItemES]() //广告位 CreateIndex[*model.CmsSlideSlotES]() } // 初始化索引表 func initEs2() { //展出 CreateIndex[*model.CmsSlideDisplayES]() //评论 CreateIndex[*model.CommentES]() //访客 CreateIndex[*model.GuestES]() //邀请人 CreateIndex[*model.InvitorES]() //我来答 CreateIndex[*model.ReplyEs]() //应答 CreateIndex[*model.RespondES]() //关联内容 CreateIndex[*model.RelatedContentES]() //作答次数 CreateIndex[*model.CmsUserAnswerES]() //发布稿版本历史es CreateIndex[*model.VersionHistoryES]() //推荐稿es CreateIndex[*model.RecommendEs]() //内容栏目es CreateIndex[*entity.ContentColumnEs]() //二维码关联es CreateIndex[*model.QrCodeES]() //组件es CreateIndex[*model.ComponentEs]() //组件内容关系es CreateIndex[*model.ComponentContentES]() //社交平台发布稿es CreateIndex[*model.CmsPlatformPublishingEs]() //CmsPlatformPublishingEs := model.CmsPlatformPublishingEs{} //existsCmsPlatformPublishingEs, _ := elastic.GetElastic().IndexExists(CmsPlatformPublishingEs.TableName()).Do(ctx) //if !existsCmsPlatformPublishingEs { // _, err := elastic.GetElastic().CreateIndex(CmsPlatformPublishingEs.TableName()).BodyString(CmsPlatformPublishingEs.GetMapping()).Do(ctx) // if err != nil { // log.Errorf("CmsPlatformPublishingEs init mapping : %+v", err) // } else { // log.Infof("CmsPlatformPublishingEs init mapping ok") // } //} }
go面向接口编程: 创建index
猜你喜欢
转载自blog.csdn.net/leijmdas/article/details/143184518
今日推荐
周排行