Elasticsearch 기초

Hansol Park·2022년 1월 15일
1

elasticsearch

목록 보기
1/1

What is ES

elastic search는 json형식의 비정형 데이터를 분산저장하며 분석과 풀텍스트 검색을 제공하는 Javar기반 오픈소스 검색엔진입니다. 전통적인 RDBS나 noSQLDB들보다 훨씬 빠르게 복잡한 검색을 실행하며 엔진을 클러스터로 구성할 수 있어 scalable한 특징을 갖고있습니다. 루씬에서부터 시작해 현재 가장 기본적으로 쓰이는 검색엔진으로 빅테크기업부터 작은 회사까지 검색엔진으로 쓰이는 엘라스틱서치의 기본 개념에 대해 소개하겠습니다.

ES 기본 개념

RDB와 ES 컨셉 매칭 (단, 컨셉일뿐 동일한 개념은 아님!)

RDBElasticSearch
DatabaseIndex
RowDocument
ColumnField
SchemaMapping
SQLQuery DSL

Document

데이터 최소 단위 (one of json object)

document는 key, value 쌍(field)으로 구성된 json object로 es 기본 저장 단위로,

사용자가 지정한 필드 외에도 기본 메타필드(_id, _type, _index)들이 포함됩니다.

Field

Document를 구성하는 key,value 쌍으로 field는 고유의 데이터구조와 값을 갖습니다. 기본적인 데이터구조부터 object까지 다양한 구조가 elastic search의 장점중 하나라 아래 공식도큐먼트를 참고하시길 바랍니다.
- field data type 종류: Field data types | Elasticsearch Guide [7.16] | Elastic

Index

여러개의 Document를 묶는 단위로 1개이상의 primary shard에 매핑되고, 0개 이상의 replica shard를 가지는 논리공간의 이름을 말합니다. 특정데이터에 대한 가격 정보(document)를 저장하는 index, 상품(document)를 저장하는 index 등 다양하게 저장됩니다.
RDBS는 다른 DB 정보를 엮어 조회가 불가능하지만 elastic search는 쿼리하나로 여러 index에서 정보를 가져올 수 있습니다.

ES에서 restful API를 통해 index에 document를 추가하는 과정을 색인화 과정이라하는데 이를 위해선 index와 그의 type과 정보의 고유 id를 지정합니다.

Type

Index 안에서 하나 이상의 type을 정의할 수 있습니다. 색인을 논리적으로 분류/구분한 것으로 index내에 같은 document 종류를 그룹화하고 구성하며 일반적으로 여러 공통된 필드를 갖는 문서에 대해 유형의 정의됩니다. (하지만...7.0이상부터 type은 1개로 고정되어 ES에서 없애고있습니다)

Mapping

document를 인덱싱할 때 인덱스에서 정의하는 필드에 맞춰 데이터가 맵핑됩니다. 
사용자가 직접 인덱스 맵핑 필드를 정의할 수 있지만 es는 미리 인데그 매핑을 지정하지 않아도 자동으로 맵핑하는  dynamic mapping 기능이있어 매우 편리합니다.
profile
Striving to build valuable services

0개의 댓글