[Elasticsearch] embedded elasticsearrch server 테스트.

Elastic/Elasticsearch 2014. 11. 19. 16:59

내가 만드는 application 에 es 를 포함시켜 놓고 사용하고 싶을 때 사용하시면 됩니다.

이걸 어디에 사용하느냐는 알아서들 하시구요. ^^


기본 로직만 담아서 main 함수에 넣었으니 입맛에 맞게 수정 하시면 되겠내요.


[Embedded Elasticsearch Server]

public class EmbeddedElasticsearchServer {


    public static void main(String[] args) {

        ImmutableSettings.Builder settings = ImmutableSettings.settingsBuilder();

        settings.put("node.name", "embedded-local-node");

        settings.put("path.data", "data/index");


        Node node = NodeBuilder.nodeBuilder()

            .settings(settings)

            .clusterName("embedded-local-cluster")

            .data(true)

            .local(true)

            .node();


        Client client = node.client();


        CreateIndexRequest request = Requests.createIndexRequest("embedded-index").settings(settings);

        CreateIndexResponse response = client.admin().indices().create(request).actionGet();


        client.close();


        // node.close() 가 호출 되면 embedded elasticsearch daemon 은 stop 된다.

        node.close();

    }

}


보시면 기본 flow 는 이렇습니다.


1. elasticsearch.yml 을 대신 할 settings를 설정 합니다.

2. 1번 settings 정보를 갖는 node 를 생성 합니다.

----> 여기까지만 하면 es daemon 이 실행 됩니다.

3. embedded es server 로 접속할 client를 생성 합니다.

4. client를 이용해 index를 생성 합니다.

5. client 접속을 끊습니다.

----> client 가 close 되었지 daemon 은 그대로 listen 하고 있습니다.

6. embedded es server 를 종료 합니다.

----> node.close() 해야만 데몬이 종료 합니다.


여기까지가 기본 이구요.

활용은 각자 알아서 하시는 걸로 ^^

: