Elasticsearch 단순 사용 시리즈--자바 API 로 CRUD 작업

8452 단어 elasticsearch
1.Elasticsearch 와 RDBMS 가 대응 하 는 관 계 를 간단하게 소개 하여 기억 하고 이해 하기 쉽다.
Elasticsearch
RDBMS
index
database
type/mapping
table
document/object
row/record
field
column
2.client 를 가 져 오 는 도구 클래스 를 패키지 합 니 다.

/**
 * @author lcj
 * @version 1.0
 * @description   client
 * @Create 2017-06-19
 */
public  class TransportClientUtil {

    public static TransportClient getTransportClient(){
        Settings settings = Settings.builder()
                .put("cluster.name","es-cluster") //       ,   elasticsearch
                .put("client.transport.sniff",true) //     , 5     nodes
                .build();
        TransportClient client = null;
        try {
            client = new PreBuiltTransportClient(settings)
            //  node
            //.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(System.getenv("COMPUTERNAME")),9300));
            .addTransportAddress(new InetSocketTransportAddress(InetAddress.getLocalHost(),9300));
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
        return client;
    }
}

3.자바 api 로 CRUD 진행

/**
 * @author lcj
 * @version 1.0
 * @description   java api  es node,     crud
 * @Create 2017-06-22
 */
public class EsJavaApi {

    private static final Logger LOGGER = LoggerFactory.getLogger(EsJavaApi.class);

    private static TransportClient client = TransportClientUtil.getTransportClient();

    public static void main(String[] args) {
        //      
        //save();

        //    
        //get();

        //    
        //update();

        //    
        delete();

        //    
        client.close();

    }

    /**
     * pojo bean ,  index   
     */
    private static void save(){
        Book book = new Book();
        book.setName("jvm    5");
        book.setAuthor("lcj4");
        book.setPublishTime(new Date().toString());
        book.setPrice(512.10);
        book.setId("17");

        ObjectMapper mapper = new ObjectMapper();
        try {
            byte[] bytes = mapper.writeValueAsBytes(book);
            IndexResponse response = client.prepareIndex("book","book",book.getId())
                    .setSource(bytes)
                    .get();

            System.out.println(response.getResult()); //CREATED
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
    }

    /**
     *   id,    
     */
    private static void get(){
        GetResponse response = client.prepareGet("book","book","17")
                .setOperationThreaded(false) //   true,        
                .get();

        //{"id":"17","name":"jvm    5","author":"lcj4","price":512.1,"publishTime":"Thu Jun 22 13:36:49 CST 2017"}
        System.out.println(response.getSourceAsString());

    }


    /**
     *     
     */
    private static void update(){
        UpdateRequest updateRequest = new UpdateRequest();
        //    
        updateRequest.index("book");
        //    
        updateRequest.type("book");
        //  id
        updateRequest.id("17");

        Book book = new Book();
        book.setName("jvm    55");
        book.setAuthor("lcj4");
        book.setPublishTime(DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
        book.setPrice(512.18);
        book.setId("17");

        ObjectMapper mapper = new ObjectMapper();

        //       
        //{"_index":"book","_type":"book","_id":"17","_version":2,"found":true,"_source":{"id":"17","name":"jvm    55","author":"lcj4","price":512.18,"publishTime":"2017-06-22 13:45:22"}}
        try {
            updateRequest.doc(mapper.writeValueAsBytes(book));
            client.update(updateRequest).get();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    /*  id    */
    private static void delete(){
        DeleteResponse response = client.prepareDelete("book","book","17")
                .get();
        //DeleteResponse[index=book,type=book,id=17,version=3,result=deleted,shards=ShardInfo{total=2, successful=1, failures=[]}]
        System.out.println(response);
    }
}

좋은 웹페이지 즐겨찾기