Skip to content

Elastic Search

  • 확장성이 뛰어난 오픈 소스 전체 텍스트 검색 및 분석 엔진
  • 대량의 데이터를 신속하고 거의 실시간으로 저장, 검색 및 분석
  • 일반적으로 복잡한 검색 기능과 요구 사항이 있는 응용 프로그램을 구동하는 기본 엔진 / 기술

핵심 개념

  • Near Realtime (NRT)
    • Elastic Search는 거의 실시간 검색 플랫폼
    • 문서를 색인할 때부터 검색 기능할 때까지 약간의 대기시간(일반적으로 1초)이 매우 짧음
  • 클러스터(Cluster)
    • 전체 데이터를 함께 보유하고 모든 노드에서 연합 인덱싱 및 검색 기능을 제공하는 하나 이상의 노드(서버) 모음 -> 노드의 그룹이라고 생각
    • 클러스터는 기본적으로 elasticsearch 라는 고유한 이름으로 식별
    • 이 이름은 노드가 이름으로 클러스터에 참여하도록 설정된 경우 노드가 클러스터의 일부일 수 있기 때문에 중요
  • 노드(Node)
    • 노드는 클러스터의 일부이며 데이터를 저장하고 클러스터의 인덱싱 및 검색 기능에 참여하는 단일 서버
    • 단일 클러스터에서 원하는 만큼 노드를 소유 가능
    • 현재 네트워크에서 실행중인 다른 Elasticsearch 노드가 없는 경우 단일 노드를 시작하면 기본적으로 elaticsearch라는 새로운 단일 노드 클러스터가 생성
  • 색인(index)
    • 색인은 다소 유사한 특성을 갖는 문서의 컬렉션
    • 색인은 이름(모두 소문자여야함)으로 식별되며 이 이름은 색인 작성, 검색, 갱신 및 삭제할 때 색인을 참조하는데 사용
    • DB 관점에서 보면 DB(Schema)에 해당
  • Type
    • 다른 종류의 data들을 같은 index에 저장하게 해주는 index의 ‘논리적인’ 부분을 의미
    • 7.x 버전부터 해당 개념이 전체 삭제 -> deprecated
    • DB 관점에서 보면 Table에 해당
  • Documments
    • 색인을 생성할 수 있는 기본 정보 단위
    • JSON으로 표현
    • DB 관점에서 Record

참고