public boolean isExistDynamicTemplate(String templateName) {
client = ESClient.getClient();
GetIndexTemplatesResponse res = client.admin().indices().prepareGetTemplates(templateName).get();
return res.getIndexTemplates().size()>0?true:false;
}
public boolean isDeleteDynamicTemplate(String templateName) {
client = ESClient.getClient();
DeleteIndexTemplateResponse res = client.admin().indices().prepareDeleteTemplate(templateName).get();
return res.isAcknowledged();
}
public boolean isCreateDynamicTemplate(String templateName, String mappings) {
client = ESClient.getClient();
PutIndexTemplateResponse res = client.admin().indices()
.preparePutTemplate(templateName).setTemplate("*")//匹配所有的索引,此处可以为正则表达式
.addMapping("_default_", mappings).get();
return res.isAcknowledged();
}
public void createDynamicDefaultTemplate() throws IOException {
String templateName = "xx_template";
// 先判断动态模板是否存在,不存在再创建
boolean isExist = this.indexDao.isExistDynamicTemplate(templateName);
if (!isExist){
String mappings = FileUtil.readAsString(new File(Constant.BASE_DIR + Constant.SEPARATOR + "es"
+ Constant.SEPARATOR + "template.txt"));
isExist = this.indexDao.isCreateDynamicTemplate(templateName,mappings);
}
}