다음과 같이 mapping을 생성하였다.
index : get-together
type : new-events
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | curl -XPUT 'localhost:9200/get-together/_mapping/new-events?pretty' -d '{ "new-events": { "properties": { "name": { "type": "string", "index": "analyzed" }, "name2": { "type": "string", "index": "not_analyzed" }, "name3": { "type": "string", "index": "no" } } } }' | cs |
매핑이 생성되면 성공 메세지가 출력된다.
1 2 3 | { "acknowledged" : true } | cs |
이와 같이 new-events type에 대한 매핑을 생성 후 새로운 속성을 추가해보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | curl -XPUT 'localhost:9200/get-together/_mapping/new-events?pretty' -d '{ "new-events": { "properties": { "name": { "type": "string", "index": "analyzed" }, "name2": { "type": "string", "index": "not_analyzed" }, "name3": { "type": "string", "index": "no" }, "name4": { "type": "string", "index": "no" } } } }' | cs |
새로운 속성이 정의된 매핑을 적용 후 매핑을 조회해 보자. 새롭게 추가된 name4 속성이 출력됨을 알 수 있다.
1 | curl -XGET localhost:9200/get-together/_mapping/new-events?pretty | cs |
허나 한번 정해진 속성은 변경이 불가능하다. 또한 필드 색인하는 방식도 변경할 수 없다.
name4 속성을 integer로 변경하여 매핑을 수정해 보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | curl -XPUT 'localhost:9200/get-together/_mapping/new-events?pretty' -d '{ "new-events": { "properties": { "name": { "type": "string", "index": "analyzed" }, "name2": { "type": "string", "index": "not_analyzed" }, "name3": { "type": "string", "index": "no" }, "name4": { "type": "integer", "index": "no" } } } }' | cs |
다음과 같은 오류가 발생됨을 알 수 있다.
1 2 3 4 5 6 7 8 9 10 11 | { "error": { "root_cause": [{ "type": "mapper_parsing_exception", "reason": "wrong value for index [integer] for field [name4]" }], "type": "mapper_parsing_exception", "reason": "wrong value for index [integer] for field [name4]" }, "status": 400 } | cs |
한번 정해진 매핑의 속성은 변경이 불가능하니 초반에 설계를 잘하자.
'서버' 카테고리의 다른 글
[Elasticsearch] 샤드 (Shard) (0) | 2017.12.20 |
---|---|
[Elasticsearch] 최적화 (0) | 2017.12.20 |
[Elasticsearch] filter 조회가 query 조회보다 빠르다. (0) | 2017.12.11 |
[Elasticsearch] Query 검색 결과 구조 (0) | 2017.12.06 |
[Elasticsearch] index 매핑 (analyzed, not_analyzed, no) (0) | 2017.12.01 |
[Elasticsearch] 모니터링 툴 (0) | 2017.11.30 |
[Elasticsearch] 클러스터 구성 (2) | 2017.11.30 |
[Elasticsearch] 용어 정리 (0) | 2017.11.29 |