Elasticsearch는 Lucene을 기초로 동작합니다.
Lucene을 이해하면 Elasticsearch의 쿼리를 더 잘 이해할 수 있습니다.
gradle project에 다음 의존성을 주입합니다.
dependencies {
// 데이터 파싱 용도
compile('com.opencsv:opencsv:4.6')`
// 루씬 인덱싱 및 검색 용도`
compile group: 'org.apache.lucene', name: 'lucene-core', version: '7.3.0'`
// 테스트 용도
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.1`
testImplementation 'org.assertj:assertj-core:3.20.2'`
}
이제 연습할 준비는 되었습니다!
1. 원하는 데이터.csv 파일을 프로젝트 파일에 넣고, 2. csv 파일을 루씬에 인덱싱한 뒤, 3. 쿼리를 테스트하면 됩니다.
이 튜토리얼에서는 포켓몬 데이터를 사용합니다. (포켓몬 게임에서 사용하는 포켓몬 데이터)
https://www.kaggle.com/rounakbanik/pokemon
포켓몬 데이터를 저장한 뒤, 아래와 같은 쿼리들을 만들며 공부할 겁니다.
@Test
void 악타입_포켓몬() throws IOException {`
// TODO
}
@Test
void 공격력이_120_이상_땅타입_포켓몬() throws IOException {
// TODO
}
@Test
void 공격력이_가장_큰_불타입_포켓몬_5마리() throws IOException {
// TODO
}
@Test
void Natural_Cure_능력을_가진_포켓몬() throws IOException {
// TODO
}
다음 시리즈에서 뵙겠습니다~!