본문 바로가기
Engineering WIKI/Book

기초부터 다지는 엘라스틱서치 운영 (1 ~ 2장) / 훑어보기 및 기본동작

by wonos 2023. 9. 7.

1장. ElasticSearch 훑어보기 / 2장.ElasticSearch 기본 동작

1.1 ElasticSearch란

  • ElasticSearch는 루씬(Lucene) 기반의 오픈 소스 검색 엔진이다. JSON 기반의 문서를 저장하고 검색할 수 있으며 문서들의 데이터를 기반으로 분석 작업도 할 수 있다.
  • 준실시간 검색 엔진 : 실시간이라고 생각할 만큼 색인된 데이터가 매우 빠르게 검색됨
  • 클러스터 구성 : 한 대 이상의 노드를 클러스터로 구성하여 높은 수준의 안정성을 이루고 부하를 분산할 수 있음.
  • 스키마리스 : 입력될 데이터에 대해 미리 정의하지 않아도 동적으로 스키마를 생성할 수 있음.
  • REST API : REST API 기반의 쉬운 인터페이스를 제공하여 비교적 진입 장벽이 낮음
  • {”title”:”test”}라는 JSON 문서를 입력하면 해당 문서는 우선 메모리에 저장된다. 그리고 1초 후에 샤드(shard)라는 ElasticSearch 데이터 저장 공간에 저장되고 이 이후에는 쿼리를 통해서 해당 문서를 검색 할 수 있게 된다.
  • 준실시간성은 ‘refresh_interval’이라는 파라미터의 영향을 받는다. 해당 파라미터를 조절하면 특정 시간 이후에 검색할 수 있게 변경할 수 있다.
  • 클러스터를 구성하고 있는 모든 노드는 메시 형태로 요청을 주고받기 때문에 어떤 노드에서도 색인/검색 작업을 처리할 수 있다.
    • 메시 형태란 : 모든 구성 요소가 서로 논리적으로 연결되어 있어서 다른 노드들과 직접적으로 통신할 수 있는 네트워크 형태를 의미한다.
  • 스키마리스는 문서를 입력하기에 앞서 문서에 어떤 필드를 저장할 것인지 사전에 정의하지 않아도 된다는 의미!
  • curl로 ElasticSearch 실행 확인하기
    • curl -s를 사용하면 진행률 표시기와 오류 메시지가 표시되지 않아 명령이 보다 최소화되고 조용한 방식으로 실행됩니다
    • curl -s http://localhost:9200


2.1 문서 색인과 조회

  • 새로운 문서를 입력할 때는 PUT, 기존 문서를 수정할 때는 POST, 삭제할 때는 DELETE, 조회 시에는 GET을 사용한다.
  • ElasticSearch를 통해서 JSON 형태의 문서를 색인하고, 조회하고, 특정 조건에 맞는 문서들을 검색하고, 통계를 내는 등의 작업을 할 수 있다.