엘라스틱 서치의 필드값에 인덱스를 걸어주는 역할을 한다.
우선 인덱스(디비)를 하나 만든다.
curl -XPUT 'localhost:9200/test?pretty'
이렇게 만들면 매핑이 없는 인덱스가 생성된다.
curl -XGET 'localhost:9200/test/_mapping?pretty'
이렇게 조회해보면 매핑된 인덱스가 없는것을 알 수 있다.
여기서 데이타를 입력을 하면 매핑이 자동 생성된다.
앞으로 이 인덱스에 넣을 데이터를 입력하면 자동으로 매핑이 생성된다.
curl -XPOST localhost:9200/test/post/38196036?pretty -H 'Content-Type: application/json' -d '{"site_name": "tistory", "multi": "free", "site_domain": "test", "subject": "매핑테스트", "url": "test", "site_num": 38196036, "uid": "slrclub_free_38196036", "site_reg_date": "2020-10-02 09:32:16", "site_cnt": 585}'
이렇게 해주면 대부분 알아서 들어간다. 이때 주의할 점은 숫자는 반드시 큰따옴표를 빼주어야한다. 안그러면 문자로 들어가버린다. 문자가되면 정렬이 안된다.
그게 싫으면 인덱스를 만들때 매핑을 지정해도 된다.
인덱스를 삭제해보자.
curl -XDELETE 'localhost:9200/test?pretty'
이렇게 삭제한다. 그리고 매핑을 만들어서 인덱스를 생성해보자.
curl -XPUT 'localhost:9200/test?pretty' -H 'Content-Type: application/json' -d '{ "mappings": { "properties": { "site_reg_date": { "type": "date", "format": "yyyy/MM/dd HH:mm:ss" }, "subject": { "type": "text" }, "site_name": { "type": "keyword" }, "multi": { "type": "keyword" }, "site_domain": { "type": "keyword" }, "url": { "type": "text" }, "site_num": { "type": "integer" }, "uid": { "type": "keyword" }, "site_cnt": { "type": "integer" } } } }'
여기서 문자,숫자,날짜 형식을 지정해주어야 하는데 숫자를 지정하지 않고 문자로 들어가버리면 sort가 안되니 주의해야한다. 또 날짜는 반드시 format을 넣어주어야한다.
이렇게 생성하고 매핑이 제대로 생성됐는지 확인해보면 된다.
'엘라스틱서치' 카테고리의 다른 글
아마존 AWS 프리티어에 엘라스틱서치 설치하기 4편 - 엘라스틱서치 보안설정하기 feat. MobaXterm (0) | 2020.11.14 |
---|---|
아마존 AWS 프리티어에 엘라스틱서치 설치하기 3편 - AWS 프리티어 우분투 Ubuntu 서버에 엘라스틱서치 설치하기 feat. MobaXterm (0) | 2020.11.14 |
아마존 AWS 프리티어에 엘라스틱서치 설치하기 2편 - AWS 서버에 접속하기 feat. MobaXterm (0) | 2020.11.14 |
아마존 AWS 프리티어에 엘라스틱서치 설치하기 1편 - AWS 프리티어 신청하기 feat. MobaXterm (0) | 2020.11.14 |
엘라스틱서치 데이타 입력 (0) | 2020.10.03 |