[엘라스틱서치] include_type_name is set to true
- Stackoverflow/DB
- 2020. 10. 16.
엘라스틱서치(Elasticsearch)를 하는 도중, 인덱스를 생성하기 위해서 mappings 값을 입력하여 넣었는데 에러가 발생하였다. 오타가 난건지 싶어서 여러번 확인을 한 결과 에러는 발견하지 못해서 결국 구글링을 하게 되었다.
에러가 발생한 메세지
{
"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
}
스택오버플로우에서 비슷한 케이스
Mapping types are no longer supported in versions 7.x. Elasticsearch 7.x Specifying types in requests is deprecated. For instance, indexing a document no longer requires a document type. The new index APIs are PUT {index}/_doc/{id} in case of explicit ids and POST {index}/_doc for auto-generated ids. Note that in 7.0, _doc is a permanent part of the path, and represents the endpoint name rather than the document type. The include_type_name parameter in the index creation, index template, and mapping APIs will default to false. Setting the parameter at all will result in a deprecation warning. The default mapping type is removed. My suggestion is to remove _doc type from your mappings. { "mappings": { "properties": { "category" : { "type": "nested", "properties" : {
7.x부터 인덱스에 여러개의 타입을 생성할 수 없기 때문에 위 요청에서 타입인 _doc을 넣는 것은 무의미하기 때문에 발생하는 에러이다. 그래서 _doc 부분을 제거한 후 스키마 매핑값을 요청한다면 정상적으로 작동하게 된다.
참고자료
https://stackoverflow.com/questions/58824489/where-to-put-include-type-name-in-config-exs
반응형
'Stackoverflow > DB' 카테고리의 다른 글
[MySQL] Could not create connection to database server (0) | 2022.04.30 |
---|---|
The reference to entity "useSSL" must end with the ';' delimiter. (0) | 2021.01.17 |
The last packet successfully received from the server was xxx,xxx milliseconds ago. (0) | 2018.03.26 |
Column count doesn't match value count at row 1 (2) | 2017.09.05 |