1.使用java创建一个ES索引
注意:java创建索引很麻烦!所以一般很少使用java代码创建索引!!!
private String indextName = "bookdsfd3";//定义索引名称
private String typeName = "novedfdl3";//定义类型名称
@Test //通过java代码创建索引
public void test4() throws IOException {
//1.创建Setting参数;在setting里面有备份个数和分片数量
Settings.Builder setting = Settings.builder().put("number_of_shards","3").put("number_of_replicas",1);
//2.创建Mapping ,mapping映射的是表
// 参考的是真实的ES语句结构来写的,就是相当于把那一条语句给重新翻译成java语言
XContentBuilder mappings = JsonXContent.contentBuilder().
startObject(). //相当于ES语句中的左大括号{
startObject("properties").
startObject("name").
field("type","text"). //field进行配置一些字段设置
field("analyzer","ik_max_word").
endObject().
startObject("author").
field("type","keyword").
endObject().
startObject("price").
field("type","long").
endObject().
startObject("count").
field("type","long").
field("index","false").
endObject().
endObject().//相当于ES语句中的右大括号}
endObject();
//3.创建一个索引对象
//创建一个索引的请求对象,这条语句包含索引名称,还有类型名称;还有setting 有mapping
CreateIndexRequest request = new CreateIndexRequest(indextName).settings(setting).mapping(typeName,mappings);
//4. 通过client对象去连接ES并执行创建索引
RestHighLevelClient client = ClientUtils.client();//进行连接ES
CreateIndexResponse resp = client.indices().create(request, RequestOptions.DEFAULT);//通过连接对象进行传数据;
//5. 输出
//打印返回值
System.out.println("resp:" + resp.toString());
}
2.java创建索引的时候判断索引是否已经存在
//判断索引是否已经存在
//创建一个对象用来传递索引名
GetIndexRequest existsRequest = new GetIndexRequest();
existsRequest.indices(indextName);//输入要判断的索引名字
//返回值是布尔类型,判断方法是client对象下indices()方法的exists方法,在这个方法里有索引的名字;
boolean exists = client.indices().exists(existsRequest,RequestOptions.DEFAULT);
if(exists){//进行判断返回值;
System.out.println("索引已经存在,则删除它");
DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest();//删除索引同样要创建对象接受索引名
deleteIndexRequest.indices(indextName);//传递索引名
//执行delete方法进行删除;
AcknowledgedResponse delete = client.indices().delete(deleteIndexRequest,RequestOptions.DEFAULT);
System.out.println(delete);//输出删除结果返回值
}
。。。。。。。。。。。。。
嘻哈的简写笔记
。。。。。。。。。。。。。