ElasticSearch6(三)-- Java API实现简单的增删改查
基于ElasticSearch6.2.4, Java API创建索引、查询、修改、删除,pom依赖和获取es连接 可查看此文章。
package com.xsjt.learn; import java.io.IOException; import java.net.InetAddress; import java.text.SimpleDateFormat; import java.util.Date; import org.elasticsearch.action.delete.DeleteResponse; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.action.index.IndexResponse; import org.elasticsearch.action.update.UpdateResponse; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.transport.client.PreBuiltTransportClient; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.alibaba.fastjson.JSONObject; /** * ClassName:Crud 简单的增删改查 Date: 2018年3月21日 下午12:51:15 * * @author xbq * @version * @since JDK 1.8 */ public class Crud { public final static String HOST = "192.168.10.58"; // http请求的端口是9200,客户端是9300 public final static int PORT = 9300; private TransportClient client = null; /** * getConnection:(获取连接). * * @author xbq Date:2018年3月21日下午4:03:32 * * @throws Exception */ @SuppressWarnings({ "resource", "unchecked" }) @Before public void getConnection() throws Exception { // 设置集群名称 Settings settings = Settings.builder().put("cluster.name", "nmtx-cluster").build(); // 创建client client = new PreBuiltTransportClient(settings) .addTransportAddresses(new TransportAddress(InetAddress.getByName(HOST), PORT)); } /** * closeConnection:(关闭连接). * * @author xbq Date:2018年3月21日下午4:03:45 * */ @After public void closeConnection() { if (client != null) { client.close(); } } /** * testIndex:(创建索引). * * @author xbq Date:2018年3月21日下午4:04:16 * @throws IOException * */ @Test public void testCreateIndex() throws IOException { JSONObject jsonObject = new JSONObject(); jsonObject.put("orderNo", new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + "001"); jsonObject.put("orderName", "购买元宝"); jsonObject.put("orderTime", new Date()); jsonObject.put("price", 1.5); jsonObject.put("ip", "192.168.1.111"); IndexResponse response = client.prepareIndex("rxpay", "order").setSource(jsonObject.toString(), XContentType.JSON).get(); System.out.println("索引名称:" + response.getIndex()); System.out.println("类型:" + response.getType()); System.out.println("文档ID:" + response.getId()); // 第一次使用是1 System.out.println("当前实例状态:" + response.status()); } /** * testQuery:(查询). * @author xbq * Date:2018年5月3日下午6:04:22 */ @Test public void testQuery() { try { GetResponse response = client.prepareGet("rxpay", "order", "6W2QKmMBhrIcTC9dgt7A").execute().actionGet(); System.out.println(response.getSourceAsString()); } catch (Exception e) { e.printStackTrace(); } } /** * testUpdate:(更新). * @author xbq * Date:2018年5月3日下午6:07:58 */ @Test public void testUpdate() { JSONObject json = new JSONObject(); json.put("user", "Joe"); json.put("age", "22"); json.put("sex", "男"); json.put("orderTime", "6666666"); UpdateResponse response = client.prepareUpdate("rxpay", "order", "6W2QKmMBhrIcTC9dgt7A").setDoc(json.toJSONString(), XContentType.JSON).get(); System.out.println("索引名称:" + response.getIndex()); System.out.println("类型:" + response.getType()); System.out.println("文档ID:" + response.getId()); System.out.println("当前实例状态:" + response.status()); } /** * testDelete:(删除). * @author xbq * Date:2018年5月4日下午5:44:32 */ @Test public void testDelete() { DeleteResponse response = client.prepareDelete("rxpay", "order", "6W2QKmMBhrIcTC9dgt7A").get(); System.out.println("索引名称:" + response.getIndex()); System.out.println("类型:" + response.getType()); System.out.println("文档ID:" + response.getId()); System.out.println("当前实例状态:" + response.status()); } }