[Spring Boot, ElasticSearch] ES - Spring Boot

Ik·2023년 2월 26일
0

Back

목록 보기
16/33

회사 CMS 관련 소스들을 분석하며





참고

기본적으로 목적을 알아야 이해가 쉬울 것이라 생각

  • ElasticSearch에서 하던 작업들을 Spring boot에서 ES 작업 하는 것이 목적이기에 Spring Boot는 ES API 사용한다는 것을 알고 넘어가야 할 듯

  • API가 무슨 작업을 의미하는지 찾아보고 우선 ES에서 어떤 작업을 진행하는지 확인 필요

  • ES가 하는 작업들을 알아야 될 것이며 관련 API는 무엇이 있는지도 알아야 할 듯

  • 이거 코드보면서 딱봐도 API인데(ctrl + 클릭으로 해당 class 정보 볼 수 있는경우) 구글에 돌려도 안나오는 경우 해당 기술 문서에서 서칭 필요
    • java.doc에는 주로 코드(=메서드) 설명이기 때문에 해당 기술 플랫폼(ex, elasticsearch 홈페이지)에서 검색하자




Class

SearchResponse

  • documents(문서) search, aggregations(집계), suggestions(제안기) and also offers ways of requesting highlighting on the resulting documents

제안기

  • 쿼리 오타인 경우에 유사한 명령어로 제안

종류

  1. term : 예상되는 의미로 제안
  2. phrase : 예상되는 의미로 제안하는데 단어의 위치도 고려함
  3. completion : 자동 완성



QueryBuilder

  • Query를 만드는데 사용, Query DSL이 지원하는 모든 타입의 query builder 존재

Query DSL

  • HQL(Hibernate Query Language) 쿼리를 타입에 안전하게 생성 및 관리할 수 있게 해주는 프레임워크
    • 쿼리가 복잡해지는 경우 단순히 Spring에서 제공해주는 메서드로는 깔끔하고 효율적으로 사용하지 못하는 문제 발생
    • 가독성은 물론 실수 없이 깔끔하게 쿼리 작성 가능



AnalyzeRequest

  • 분석기
  • 사용자 정의 혹은 기존의 존재하는 분석 방법 정의
  • 여기서 정의한 분석 방법으로 document 맵핑




AnalyzeRequestBuilder

  • Analyzerequest 인스턴스 만드는 Class




AnalyzeResponse

  • 토큰화된 Document 토큰 반환

AnalyzeToken

  • Response에 Token 관련 Class
    • term, offset, position 등의 token 관련 정보 저장되어 있음



AnalyzeToken




ElasticOption.java

  • 검색결과에 Option을 다루는 Class
  • sort, highlight, source
    • source : 볼 Filed, 보지 않을 Filed 설정
  • fulfill은 모르겟음 (???????????????????????????)






ref

0개의 댓글