이전 포스트
Elastic Search 6.x 에서 7.x 로 변경되며 무엇이 변경되었고 필수로 인지해야하는 사항이 무엇인지에 대해 작성하였습니다.
API
API 변경은 Elastic Search 버전을 업그레이드 하는 것에 있어 큰 이슈 사항입니다.
6.x 버전에서 Single Type으로 제한이 되었다면, 7.x 로 업그레이드 되며 Type 구조를 삭제하게 되었습니다. (Typeless 요청)
- _default_ 매핑 사용이 중단되었습니다.
내용을 확인하면 Type이 사라지고 Document API는 _doc으로 대체하여 적용하는 것을 볼 수 있습니다.
Search
API6.x7.x
search | /{index}/{type}/_search | {index}/_search |
msearch | /{index}/{type}/_msearch | /{index}/_msearch |
count | /{index}/{type}/_count | /{index}/_count |
explain | /{index}/{type}/{id}/_explain | /{index}/_explain/{id} |
search template | /{index}/{type}/_search/template | /{index}/_search/template |
msearch template | /{index}/{type}/_msearch/template | /{index}/_msearch/template |
Document
API6.x7.x
index | {index}/{type}/{id} | /{index}/_doc/{id} |
delete | /{index}/{type}/{id} | /{index}/_doc/{id} |
get | /{index}/{type}/{id} | /{index}/_doc/{id} |
update | /{index}/{type}/{id}/_update | /{index}/_update/{id} |
get source | /{index}/{type}/{id}/_source | /{index}/_source/{id} |
bulk | /{index}/{type}/_bulk | /{index}/_bulk |
mget | /{index}/{type}/_mget | /{index}/_mget |
termvectors | /{index}/{type}/{id}/_termvector | /{index}/_termvector/{id} |
mtermvectors | /{index}/{type}/_mtermvectors | /{index}/_mtermvectors |
Elastic Search 7에서 index 6.x 명령어를 사용하면 정상 작동은 합니다.
하지만 아래의 경고를 함께 확인할 수 있습니다.
#! Deprecation: [types removal] Specifying types in document get requests is deprecated, use the /{index}/_doc/{id} endpoint instead.
_doc 을 포함하여 작성하도록 경고가 확인되며 8.x 업그레이드 이후에는 정상적으로 작동하지 않을 것입니다.
Index
API6.x7.x
create index | /{index} | ㅡ |
get mapping | /{index}/_mapping/{type} | /{index}/_mapping |
put mapping | /{index}/_mapping/{type} | /{index}/_mapping |
get field mapping | /{index}/{type}/_mapping/field/{fields} | /{index}/_mapping/field/{fields} |
get template | /_template/{template} | ㅡ |
put template | /_template/{template} | ㅡ |
Document API는 7.x에서도 6.x API 동작이 가능했지만, Index는 실패 결과를 확인할 수 있습니다.
만약 기존의 API 형식을 이행하려면 include_type_name=true 형식을 추가해주세요. 인덱스 생성, 템플릿, 매핑 API 등 다양한 곳에 적용이 가능합니다.
- /{index}/_mapping/{type}?include_type_name=true
물론 아래의 경고를 함께 확인하게 됩니다.
#! Deprecation: [types removal] Using include_type_name in get mapping requests is deprecated. The parameter will be removed in the next major version.
다음 포스트
참고문헌
'Backend > ELK' 카테고리의 다른 글
Elastic Search Inverted Index (0) | 2021.05.01 |
---|---|
Elastic Search Mapping Type (0) | 2021.04.30 |
Elastic Search Data Type (0) | 2021.04.29 |
Elastic Search 추상화 개념 (0) | 2021.04.27 |
Elastic Search (0) | 2021.04.27 |