[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() 해야만 데몬이 종료 합니다.
여기까지가 기본 이구요.
활용은 각자 알아서 하시는 걸로 ^^