[Elasticsearch] Test Code 작성용 템플릿 Class.

Elastic/Elasticsearch 2015. 8. 12. 10:52

정말 단순히 제가 테스트 할 때 필요해서 기록해 두는 겁니다. ^^;

별로 도움 안될 확율이 높으니 관심있게 보지 마세요.


/**
 * Created by hwjeong
 * 이 템플릿은 Elasticsearch Test Code를 작성하는데 기본으로 사용하기 위해 작성 하였습니다.
 * 사용 방법은 두 가지 입니다.
 * settings.put("cluster.name", "elasticsearch") 를 통해서 기본적으로 구성 및 등록할 클러스터를 생성합니다.
 * settings.put("path.data", "data/index") 정보는 local 테스트 시 색인 데이터를 어디에 저장할지 설정을 하게 됩니다.
 *      client 노드를 구성해서 테스트를 할거라면 생성한 프로젝트 root 경로 아래 data/index 라는 폴더가 생성이 됩니다.
 * nodeBuilder를 통해서 테스트 및 생성할 노드의 특성을 정의 할 수 있습니다.
 *  .data(true) 설정 시 작성하시는 노드는 데이터 노드의 특성을 갖습니다.
 *  .local(true) 설정 시 같은 머신의 jvm 내부 노드간 통신이 이루어 지며 다른 jvm 노드간에는 통신이 되지 않습니다.
 *      false 로 설정 시 네트워크 분리가 되어 있지 않을 경우 운영 서버나 다른 클러스터 군으로 연결 되는 것을 주의 하셔야 합니다.
 *  .client(true)
 *      true 라는 의미는 client node 로 사용하겠다는 의미 이며, 어떠한 data 도 저장 하지 않겠다는 것입니다.
 *      즉, node.data 가 false 로 설정 되는 것과 같습니다.
 */
public class EsTestTemplate {

private static final Logger log = LoggerFactory.getLogger(EsTestTemplate.class);

private ImmutableSettings.Builder settings;
private Node node;
private Client client;

@Before
public void setup() throws Exception {
settings = ImmutableSettings.settingsBuilder();
settings.put("cluster.name", "elasticsearch");
// settings.put("node.name", "testNode");
// settings.put("path.data", "data/index");
// settings.put("gateway.type", "none");

node = NodeBuilder.nodeBuilder()
.settings(settings)
.data(true)
.local(false)
.client(false)
.node(); // included start() method.

client = node.client();
}

@After
public void tearDown() throws Exception {
client.close();
node.close();
}
}


※ 코드는 그냥 단순 nodebuilder 를 이용해서 테스트용 node 를 하나 생성 하거나 client를 생성 하는 내용입니다.


: