써먹는 웹개발
[ElasticSearch] Index생성에서 에러난 이유 본문
728x90
반응형
1. 실행 쿼리문
PUT /movie { "settings" : { "number_of_shards" : 3, "number_of_replicas" : 2 }, "mappings" : { "_doc" : { "properties": { "movieCd": { "type" : "integer" }, "movieNm": { "type" : "text" }, "movieNmEn": { "type" : "text" }, "prdtYear": { "type" : "integer" }, "openDt": { "type" : "date" }, "typeNm": { "type" : "keyword" }, "prdtStatNm": { "type" : "keyword" }, "nationAlt": { "type" : "keyword" }, "genreAlt": { "type" : "keyword" }, "repNationNm": { "type" : "keyword" }, "repGenreNm": { "type" : "keyword" } } } } } |
2. 에러 메시지
{ "error" : { "root_cause" : [ { "type" : "illegal_argument_exception", "reason" : "The mapping definition cannot be nested under a type [_doc] unless include_type_name is set to true." } ], "type" : "illegal_argument_exception", "reason" : "The mapping definition cannot be nested under a type [_doc] unless include_type_name is set to true." }, "status" : 400 }
3. 원인 및 해결방법
7.x부터 인덱스에 여러개의 타입을 생성할 수 없기 때문에 위 요청에서 타입인 _doc을 넣는 것은 무의미하기 때문에 발생하는 에러이다. 그래서 _doc 부분을 제거한 후 스키마 매핑값을 요청한다면 정상적으로 작동하게 된다.
4. 수정 후에 실행 쿼리문
PUT /movie { "settings" : { "number_of_shards" : 3, "number_of_replicas" : 2 }, "mappings" : { "properties": { "movieCd": { "type" : "integer" }, "movieNm": { "type" : "text" }, "movieNmEn": { "type" : "text" }, "prdtYear": { "type" : "integer" }, "openDt": { "type" : "date" }, "typeNm": { "type" : "keyword" }, "prdtStatNm": { "type" : "keyword" }, "nationAlt": { "type" : "keyword" }, "genreAlt": { "type" : "keyword" }, "repNationNm": { "type" : "keyword" }, "repGenreNm": { "type" : "keyword" } } } } |
출처: https://needneo.tistory.com/58 [네오가 필요해]
728x90
반응형
'Study > Elasticsearch' 카테고리의 다른 글
[ES] java에서 사용시 의문의 에러가 나는 이유 (0) | 2022.10.27 |
---|---|
[ES] logstash 테스트 중 버전 문제로 수정 (0) | 2022.10.23 |
[Elasticsearch] Java API - JPA 연동 조회 방법 (0) | 2021.11.07 |
[Elasticsearch] Query DSL이란 (0) | 2021.11.07 |
[elasticsearch] _id 기준으로 데이터 수정 (0) | 2021.08.26 |
Comments