반응형
Parameters for dynamic
dynamic parameter는 mappings에 설정되지 않은 새로운 fields를 동적으로 추가하지 말지를 정한다.
await client.indices.create({
index: 'test',
body: {
mappings: {
dynamic: false,
properties: {
id: { type: 'keyword' },
title: { type: 'text' },
body: { type: 'text' },
count: { type: 'integer' },
date: { type: 'date' },
tags: { type: 'keyword' }
}
}
}
})
☀️ | |
true (default) | 새로운 필드를 mapping에 추가한다. |
false | new fields들은 무시된다. 이 fileds들은 Index되거나 search 검색되지 않으나 return된 hits에 _source field에 담겨져 있고 보이긴 한다. |
runtime | new fieldssms runtime fields로써 mapping에 추가된다. 하지만 Index되진 않고 _source로부터 loaded될 수는 있다 at query time. |
strict | new fields가 감지되면 exception 예외가 던져지고 document는 거절된다. |
존재하지 않는 인덱스에도 데이터를 넣을 수 있는 Elasticsearch -> 알아서 색인을 생성하기 때문이다. 이러한 기능을 동적 매핑 (dynamic mapping) 이라고 한다. 하지만 실무에서는 데이터 색인 전 매핑 정보를 미리 정의하여 인덱스를 생성하는 것이 성능에 훨씬 좋다고 한다.
reference : https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic.html
반응형
'Elasticsearch' 카테고리의 다른 글
[Elasticsearch] scoring _score field 점수매기는 프로세스 (0) | 2022.04.19 |
---|---|
docker compose ELK 설치하려다가 실패한 글 (0) | 2022.04.18 |
[Elasticsearch] 연습 (0) | 2022.04.15 |
[Elasticsearch + Node.js] index 생성 삭제 조회 bulk CRUD with TypeScript (0) | 2022.04.14 |
[Elasticsearch] node.js로 bulk 입력/업데이트/삭제 Bulk helpers - index, insert, update, delete (0) | 2022.04.14 |