Array 형식으로 필드에 데이터 저장하기
하나의 필드에 같은 형식의 데이터를 여러 개 넣어야 되는 경우가 많이 발생합니다. 그럴 때 대표적으로 2가지 방식이 있습니다.
1번째 방식으로는 필드와 함께 값을 같이 저장하는 방식입니다.
2번째 방식은 값만 저장하는 방식입니다.
이번에는 이 2가지 방식 모두에 대하여 알아보겠습니다.
1. 필드에 Object형식으로 데이터 리스트 저장하기
하나의 필드와 같이 값을 저장하는 방식으로는 nested를 사용하는 것 입니다.
nested 맵핑 만들기
api | PUT http://localhost:9200/object-list-index/ |
header | Content-type: application/json |
body | { "mappings": { "properties": { "server": { "type": "keyword" }, "users": { "type": "nested" } } } } |
데이터 넣기
api | PUT http://localhost:9200/object-list-index/_doc/1 |
header | Content-type: application/json |
body | { "server": "server1", "users": [{"id": "user1"}, {"id": "user2"}, {"id": "user3"}, {"id": "user4"}] } |
데이터 출력하기
api | GET http://localhost:9200/object-list-index/_doc/1 |
2. 필드에 데이터만 리스트로 넣기
이번에는 위에 방식과 다른 그냥 값만 배열 형식으로 넣는 방식입니다.
맵핑만들기
api | PUT http://localhost:9200/value-list-index/ |
header | Content-type: application/json |
body | { "mappings": { "properties": { "server": { "type": "keyword" }, "users": { "type": "keyword", "fields": { "keyword": { "type": "keyword" } } } } } } |
데이터 넣기
api | PUT http://localhost:9200/value-list-index/_doc/1 |
header | Content-type: application/json |
body | { "server": "server1", "users": ["user1","user2", "user3","user4"] } |
데이터 출력하기
api | GET http://localhost:9200/value-list-index/_doc/1 |
'Elasticsearch > Elasticsearch 데이터' 카테고리의 다른 글
Elasticsearch 검색하기#1 GET, match, match_phrase (1) | 2021.09.06 |
---|---|
Elasticsearch text, keyword의 차이 (0) | 2021.09.03 |
Elasticsearch Object 형식으로 저장하기 (0) | 2021.08.31 |
Elasticsearch bulk 배치 처리 (0) | 2021.08.30 |
Elasticsearch 데이터 CRUD (0) | 2021.08.29 |