15.如何使用java创建一个ES索引?java创建索引的时候如何判断索引是否已经存在?嘻哈的简写笔记——Elastic Search

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);//输出删除结果返回值
}

。。。。。。。。。。。。。

嘻哈的简写笔记

。。。。。。。。。。。。。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值