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());
    }

}

 

posted @ 2018-05-05 16:17  小葱拌豆腐~  阅读(4756)  评论(0编辑  收藏  举报