Elasticsearch의 구조를 파악하기 전, 흔히들 아는 RDBMS 데이터 구조와 비교해 보겠습니다.
위 그림처럼 RDBMS에 사용되는 데이터 구조를 ES에 맵핑할 수 있습니다.
위 그림에서 Index = Database 다. 라는 정의를 보셨을 겁니다.
Elasticsearch의 7.x 버전 이하에서는 다양한 Type을 제공하였기 때문에 Type이 Table 역할이라고 할 수 있었지만 7 이후로 Type은 사라졌기에 Index가 Table, Database 역할을 수행할 수 있다고 생각하면 됩니다.
Elasticsearch를 클러스터 환경으로 구성했을 경우 index는 여러 노드로 분산 처리됩니다.
Elasticsearch 데이터 최소 단위입니다. RDBMS의 Row 와 유사합니다. 하나의 Document는 다양한 필드로 구성되어 있으며, 이 필드에는 데이터 필드에 해당하는 데이터 타입이 들어갑니다.
필드는 Document에 들어가는 데이터 타입으로 RDBMS의 Column과 유사합니다. 하지만 Elasticsearch의 필드는 보다 동적입니다. Column의 경우 하나의 데이터 타입만 가질 수 있지만, Elasticsearch의 필드의 경우 여러 타입의 데이터가 존재할 수 있습니다.
예를 들어 파이썬의 list 데이터 구조와 비슷하다고 생각하시면 됩니다.