엘라스틱 서치는 확장성이 뛰어난 오픈소스 검색 및 분석 엔진입니다.
방대한 양의 데이터를 신속하게 저장, 검색, 분석할 수 있도록 지원해주는 도구입니다. 보통 복잡한 검색 및 요구 사항이 있는 어플리케이션의 기본 엔진 기술로 사용된다고 합니다.
루씬(Lucene) 기반의 분산 검색 엔진으로, 단독으로 사용할수도 있고 ELK 스택으로 사용할 수 도 있습니다.
클러스터에 포함된 단일 서버. 데이터를 저장하고 클러스터의 색인화, 검색 기능에 참여합니다.
기본 이름은 UUID이고 원하는 이름으로 정의할 수 있지만, 어떤 서버가 ES 클러스터의 어떤 노드에 해당하는지 식별해야하기 때문에 이름을 정의하는 것이 중요합니다.
클러스터는 하나 이상의 노드의 집합체입니다. 클러스터로 통합 색인화 및 검색 기능을 활용할 수 있습니다. 기본 이름은 elasticsearch
입니다.
한 클러스터에서 원하는 개수의 노드를 포함할 수 있습니다.
비슷한 특성을 가진 문서를 모아놓은 것입니다. 색인은 모두 소문자여야하고, 이름으로 식별됩니다. 지정한 이름으로 포함된 문서에 대한 색인화, 검색, 수정, 삭제 작업을 할 수 있습니다.
색인화할 수 있는 기본 정보 단위입니다. 하나의 색인에 원하는 개수의 문서를 저장할 수 있습니다. 문서는 JSON 형식입니다.
하나의 인덱스에서 하나 이상의 타입을 정의할 수 있습니다. 유형은 색인을 논리적으로 분류한 것입니다. 체계는 사용자가 정의할 수 있습니다.
인덱스는 기존 RDBMS의 데이터베이스, 타입은 테이블, 도큐먼트는 행이라고 생각하면 이해가 쉬울 것 같습니다..
인덱스를 생성할 때 원하는 샤드의 수를 정의할 수 있습니다. 각 샤드는 독립적인 인덱스이며, 클러스터의 어떤 노드에서도 호스팅할 수 있습니다.
샤드를 통해 데이터의 수평적인 분산 (Scale Out) 을 할 수 있게됩니다.
샤드에 대해 하나 이상의 복사본을 생성하는 것입니다. 샤드나 노드에서 오류가 발생할 때 높은 고가용성을 제공한다고 합니다.
핳.. 고가용성이란, 서버, 네트워크, 프로그램 등의 서비스가 오랜 기간 지속적으로 정상 운영이 가능한 성질
을 말합니다.
각 인덱스는 여러 개의 샤드로 분리할 수 있고, 리플리카가 없거나, 1회 이상 복제할 수 있습니다. 복제된 경우 기본 샤드와 리플리카 샤드를 갖게됩니다.
간단히 엘라스틱 서치의 Document를 읽으며 개념을 알아봤습니다.
다음에는 기본 예제를 따라해볼 예정입니다.
출처 :
https://www.elastic.co/guide/kr/elasticsearch/reference/current/getting-started.html