2.生产环境自动创建es并为其添加别名

一、先上代码

    @PostConstruct
    public void createTemporaryIndex() {
        String CONFIG = "es.mapper/grayscale.xml";
        ClientInterface clientUtil = bbossESStarter.getConfigRestClient(CONFIG);

        String mapping = clientUtil.getIndice(EsConstant.ES_GRAYSCALE_LOG_INDEX.getText());
        if (StringUtils.isEmpty(mapping)) {
            clientUtil.createIndiceMapping(EsConstant.ES_GRAYSCALE_LOG_INDEX.getText(),
                    "grayscaleMapping");
            mapping = clientUtil.getIndice(EsConstant.ES_GRAYSCALE_LOG_INDEX_ALIAS.getText());
            if (StringUtils.isEmpty(mapping)) {
                //添加索引的别名
                String s = clientUtil.addAlias(EsConstant.ES_GRAYSCALE_LOG_INDEX.getText(), EsConstant.ES_GRAYSCALE_LOG_INDEX_ALIAS.getText());
                log.info("添加灰度索引别名:{}",s);
            }
        }

    }

二、具体思路

大体思路就是在启动spring项目的时候,先判断es的索引存不存在,不存在创建改索引,然后判断别名存不存在,不存在创建别名。

@PostConstruct

该注解是spring初始化的时候会执行带注解的方法,可以理解为你启动项目就会执行

String CONFIG = "es.mapper/grayscale.xml";

你的创建es索引的具体结构
在这里插入图片描述

<property name="grayscaleMapping">
        <![CDATA[
            {
                "settings": {
                    "analysis": {
                        "analyzer": {
                            "ngram_analyzer": {
                                "filter": [
                                    "lowercase"
                                ],
                                "tokenizer": "ngram_tokenizer"
                            }
                        },
                        "tokenizer": {
                            "ngram_tokenizer": {
                                "token_chars": [
                                    "letter",
                                    "digit"
                                ],
                                "min_gram": "1",
                                "type": "ngram",
                                "max_gram": "1"
                            }
                        }
                    }
                },
                "mappings": {
                    "_doc": {
                        "properties": {
                            "context": {
                                "type": "text",
                                "analyzer": "ngram_analyzer"
                            },

                            "operationName": {
                                "type": "text",
                                "analyzer": "ngram_analyzer"
                            },

                            "createTime": {
                                "type": "long"
                            },
                            "operationCrmid": {
                                "type": "keyword"
                            },
                            "logType": {
                                "type": "long"
                            }
                        }
                    }

                }
            }
        ]]>
    </property>
        String mapping = clientUtil.getIndice(EsConstant.ES_GRAYSCALE_LOG_INDEX.getText();

EsConstant.ES_GRAYSCALE_LOG_INDEX.getText()
是你的索引名称String类型,这个没直接用String,而是用的枚举获取的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我柒月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值