在项目初始化时新建索引,生命周期策略,索引模板,不需要调用es ApI 创建索引,设置mapping
需要的es的包名路径
import org.elasticsearch.action.admin.indices.alias.Alias;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.admin.indices.template.delete.DeleteIndexTemplateRequest;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.core.AcknowledgedResponse;
import org.elasticsearch.client.indexlifecycle.*;
import org.elasticsearch.client.indices.GetIndexRequest;
import org.elasticsearch.client.indices.IndexTemplatesExistRequest;
import org.elasticsearch.client.indices.PutIndexTemplateRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.unit.ByteSizeUnit;
import org.elasticsearch.common.unit.ByteSizeValue;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.common.xcontent.XContentType;
//创建索引
public void createIndex(String indexName,String mapping,Esconfig esconfig){
try {
CreateIndexRequest request = new CreateIndexRequest(indexName);//创建索引
//创建的每个索引都可以有与之关联的特定设置。
request.settings(Settings.builder()
.put("index.number_of_shards", esconfig.getShards())
.put("index.number_of_replicas", esconfig.getReplicas())
.put("index.max_result_window",esconfig.getMaxResult())
);
//创建索引时创建文档类型映射
request.mapping("_doc",mapping, XContentType.JSON);
//先判断索引是否存在,存在则删除后再创建
GetIndexRequest getIndexRequest = new GetIndexRequest(indexName);
boolean exist = client.indices().exists(getIndexRequest,RequestOptions.DEFAULT);
if(exist) {
DeleteIndexRequest deleteIndexRequest = new De