본문 바로가기
카테고리 없음

Elasticsearch study

by 수수남매 2023. 11. 24.
  • 공부 시작하자마자 알게 된 건 AWS와의 오픈소스 윤리 관련 시비? 논쟁? 
  • AWS의 Open Search는 아직 스프링 공식문서에 안 보이니까 Elasticsearch로 공부하기로 함

  • 결론부터 적어보면 이것은 NoSQL DB 형태의 검색 엔진인 것 같음
  • 핵심 특징은 Index(RDB의 database)에 데이터를 저장할 때 역색인을 해서 저장함
  • Apache lucene library 기반으로 분산 노드를 지원, 노드 묶음을 클러스터라고 함
  • 각 Index는 샤딩 방식을 적용하여 Primary shard와 Replica shard로 구성되며 다른 노드에 할담됨
  • Restful API를 이용하여 http body에 json 형식의 데이터를 담아 매핑 구조로 CRUD 수행함

  • 사용하려면 apt/docker등 다운/설치 후 9200 포트로 http 통신, 9300포트로 노드간 통신
  • Logstash(데이터 수집/변환하여 저장소로 전달), Kibana(데이터 분석/시각화)와 묶어 Elastic Stack이라고 함

  • Spring Data Elasticsearch 모듈을 이용하여 Spring 프로젝트에서 Elasticsearch 사용 가능함
// Spring-boot 3.1.5 기준 Spring-data-elasticsearch 5.1.5, Elasticsearch 8.7.1 적용
implementation 'org.springframework.boot:spring-boot-starter-data-elasticsearch'
  • Spring Data JPA의 @Entity 대신 @Document 적용
  • ElasticsearchRepository 인터페이스를 상속받는 Repository 인터페이스를 생성하여 사용