2021. 1. 24. 15:53ㆍBackend/☕️ Java
postman이나, elasticsearch head에서 아래와 같은 중첩 쿼리를 사용하면 곧바로 원하는 결과를 얻을 수(조회) 있습니다.
Java-spring framework에서 중첩 쿼리의 데이터 조회는 QueryBuilder 클래스의 nestedQuery메서드를 통해 가능합니다.
Spring 에서 중첩쿼리를 이용한 데이터 조회 방법을 바로 알아보겠습니다.
license라는 중첩 필드 중 test_type이 '정보처리기사'인 데이터를 조회할 수 있는 자바코드를 생성하겠습니다.
자바 코드입니다.
propertyValues 객체에, license.test_type 을 key 값으로, 찾고자 하는 값인 '정보처리기사'를 value 값으로 넣었습니다. 이것이 하나의 조회 조건이 됩니다. 즉,
nestedQueryBuilder의 결과입니다.
nested query의 조건을 하나만 주었기에, 7번 줄에서 하나의 match만 삽입된걸 확인할 수 있습니다.
위에서 손으로 그린 쿼리 문 중 education 중첩 필드도 존재하는데, 위와 같은 방법으로 edu_type, start_year, end_year 필드에서 원하는 하는 값을 조회할 수 있습니다.
ref: stackoverflow.com/questions/24710831/elasticsearch-java-client-querying-nested-objects
* 수정해야할 부분이 있다면 댓글로 피드백 부탁드립니다
* 부족한 포스팅이지만 누군가에겐 도움이 되었으면 합니다. 집단지성의 힘을 믿습니다.
다음 포스팅에선 하나의 경로에서 복수개의 조건(ex: license == '정보처리기사' & '전기기사') 을 추가하는 방법을 알아보겠습니다.
'Backend > ☕️ Java' 카테고리의 다른 글
[java] JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가 (0) | 2021.11.11 |
---|---|
[Java] Call by value, Call by reference (feat. new 연산자) (0) | 2021.04.25 |
자바 람다식, lambda expression (0) | 2020.11.25 |
자바 제너릭 Generic (0) | 2020.11.25 |
다양한 의존객체 주입 (constructor-arg, property) (0) | 2020.11.19 |