본문 바로가기

공부방/Elasticsearch

elasticsearch - 매핑 (mapping)

실습 자료는 아래에서 받을 수 있습니다.

https://github.com/minsuk-heo/BigData/blob/master/ch02/classesRating_mapping.json

https://github.com/minsuk-heo/BigData/blob/master/ch02/classes.json

 

키바나를 더 잘 활용하기 위해 data의 타입을 명시해주는 것이 필요하다.

 

classes index를 새로 만들어주고 시작하자

기존에 classes index를 만들어 놓은 것이 있다면 지우고 다시 실습해보자.

curl -XPUT "http://localhost:9200/classes"

 

 

만들어진 인덱스를 조회해보자

curl -XGET "http://localhost:9200/classes"?pretty

 

아래와 같이 mapping이 존재하지 않는 것을 확인할 수 있다.

우리는 mapping이라는 것을 통해 본문에 들어가는 컬럼의 값들이 어떤 타입인지 명시하는 작업을 진행할 것이다.

 

 

curl 
-H 'Content-Type:application/json' 
-XPUT 'http://localhost:9200/classes/class/_mapping?include_type_name=true&pretty' 
-d @classesRating_mapping.json

 

classRating_mapping.json 파일의 내용을 일부 수정해야 정상적으로 동작을 한다.

Elasticsearch 6.0 이상의 version에서는 String 이라는 type 대신 text라는 타입을 사용하기 때문에 string을 모두 text로 변경해주고 위 커맨드를 실행하면 정상적으로 동작을 한다.

 

https://stackoverflow.com/questions/47452770/no-handler-for-type-string-declared-on-field-name

 

 

curl -XGET "http://localhost:9200/classes"?pretty

 

아래와 같이 mapping 정보가 들어간 것을 확인할 수 있다.

'공부방 > Elasticsearch' 카테고리의 다른 글

elasticsearch - metric aggregation  (0) 2022.07.06
elasticsearch - search  (0) 2022.07.06
elasticsearch - bulk  (0) 2022.07.06
elasticsearch - update  (0) 2022.07.06
elasticsearch - CRUD  (0) 2022.07.06