写点什么

JAVA API 调用 elasticsearch 实现基本增删改查

  • 2022 年 4 月 28 日
  • 本文字数:1869 字

    阅读完需:约 6 分钟

.endObject()).get();


System. out .println( "索引名称:" + response.getIndex() + " \n 类型:" + response.getType()


+ " \n 文档 ID:" + response.getId() + " \n 当前实例状态:" + response.status());


}


/**


* 添加索引:传入 json 字符串


* @return void


* @Title: addIndex2


*/


@Test


public void addIndex2() {


String jsonStr = "{" +


" \" userName \" : \" 张三 \" ," +


" \" sendDate \" : \" 2017-11-30 \" ," +


" \" msg \" : \" 你好李四 \" " +


"}" ;


IndexResponse response = client .prepareIndex( "weixin" , "tweet" ).setSource(jsonStr, XContentType. JSON ).get();


System. out .println( "json 索引名称:" + response.getIndex() + " \n json 类型:" + response.getType()


+ " \n json 文档 ID:" + response.getId() + " \n 当前实例 json 状态:" + response.status());


}


/**


* 创建索引-传入 Map 对象


* @return void


* @Title: addIndex3


*/


@Test


public void addIndex3() {


Map<String, Object> map = new HashMap<String, Object>();


map.put( "name" , "小妹" );


map.put( "age" , 18 );


map.put( "sex" , "女" );


map.put( "address" , "广东省广州市天河区上社" );


map.put( "phone" , "15521202233" );


map.put( "height" , "175" );


map.put( "weight" , "60" );


IndexResponse response = client .prepareIndex( "species" , "person" ).setSource(map).get();


System. out .println( "map 索引名称:" + response.getIndex() + " \n map 类型:" + response.getType()


+ " \n map 文档 ID:" + response.getId() + " \n 当前实例 map 状态:" + response.status());


}


/**


* 传递 json 对象


* 需要添加依赖:gson


* @return void


* @Title: addIndex4


*/


@Test


public void addIndex4() {


JsonObject jsonObject = new JsonObject();


jsonObject.addProperty( "userName" , "张三" );


jsonObject.addProperty( "sendDate" , "2017-11-23" );


jsonObject.addProperty( "msg" , "你好李四" );


IndexResponse response = client .prepareIndex( "qq" , "tweet" ).setSource(jsonObject, XContentType. JSON ).get();


System. out .println( "jsonObject 索引名称:" + response.getIndex() + " \n jsonObject 类型:" + response.getType()


+ " \n jsonObject 文档 ID:" + response.getId() + " \n 当前实例 jsonObject 状态:" + response.status());


}


我们可以创建 Json、Map、JsonObject、自定义字段等,创建好之后可以去 ES 系统中查看是否添加成功。如果不进行分片设置每次创建默认有五个分片数量,具体情况如下图所示。



2.创建好之后,我们可以通过 ES 提供的 API 进行相应的查询操作,具体代码如下所示:


/**


* 从索引库获取数据


*


* @return void


* @Title: query


*/


@Test


public void query() {


GetResponse getResponse = client .prepareGet( "species" , "person" , "AWNtYjiVjqSYg4HhYcQZ" ).get();


System. out .println( "索引库的数据:" + getResponse.getSourceAsString());


}


查询的结果如下所示:



ES 上面对应索引的数据如下所示:



3.下面我们将上面查询到的 id(AWNtYjiVjqSYg4HhYcQZ)进行相应的修改,修改索引的 API 操作如下代码所示:


/**


* 更新索引库数据


* @Title: updateData


* @return void


*/


@Test


public void updateData() {


Map<String, Object> map = new HashMap<String, Object>();


map.put( "name" , "大妹" );


map.put( "age" , 20 );


map.put( "sex" , "女" );


map.put( "address" , "广东省广州市天河区上社" );


map.put( "phone" , "15521202233" );


map.put( "height" , "180" );


map.put( "weight" , "70" );


UpdateResponse updateResponse = client .prepareUpdate( "species" , "person" , "AWNtYjiVjqSYg4HhYcQZ" )


.setDoc(map).get();


System. out .println( "updateResponse 索引名称:" + updateResponse.getIndex() + " \n updateResponse 类型:" + updateResponse.getType()


+ " \n updateResponse 文档 ID:" + updateResponse.getId() + " \n 当前实例 updateResponse 状态:" + updateResponse.status());


}


我们在重新查询一下 id 为: AWNtYjiVjqSYg4HhYcQZ 的索引文档,看一下数据是否已经修改。结果如下所示:



我们从上面的截图可以看出数据确实已经修改完毕了,证明修改的 API 操作是成功的。


4.最后我们看一下最后的删除索引操作,具体的代码如下所示:


/**


* 根据索引名称,类别,文档 ID 删除索引库的数据


* @Title: delete 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 Data


* @return void


*/


@Test

用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
JAVA API调用elasticsearch实现基本增删改查_程序员_爱好编程进阶_InfoQ写作社区