2.X/8. Breaking Changes

v2.3 Breaking changes

drscg 2017. 10. 15. 18:46

This section discusses the changes that you need to be aware of when migrating your application to Elasticsearch 2.3.

여기에서는 application을 Elasticsearch 2.3 으로 migration할 경우 알아야 할 변경 사항에 대해 이야기한다.

REST APIedit

CORS support broken in 2.3.0 and 2.3.1edit

A change to the CORS implementation means that CORS support for pre-flight OPTIONS requests is broken in 2.3.0 and 2.3.1. This is fixed in 2.3.2.

CORS 구현으로의 변경은 pre-flight OPTIONS request에 대한 CORS 지원이 2.3.0 과 2.3.1 에서 중단된 것을 의미한다. 이는 2.3.2 에서 수정되었다.

Mappingsedit

Limit to the number of nested fieldsedit

Indexing a document with 100 nested fields actually indexes 101 documents as each nested document is indexed as a separate document. To safeguard against ill-defined mappings the number of nested fields that can be defined per index has been limited to 50. This default limit can be changed with the index setting index.mapping.nested_fields.limit. Note that the limit is only checked when new indices are created or mappings are updated. It will thus only affect existing pre-2.3 indices if their mapping is changed.

100 개의 nested field를 가진 document를 index하면 실제로, 각 nested document가 별개의 document로 index되어, 101 개의 document를 index한다. 잘못 정의 된 mapping으로부터 보호하기 위해 index 당 정의할 수있는 nested field의 수가 50 개로 제한되었다. 이 기본 제한은 index 설정 index.mapping.nested_fields.limit 를 사용하여 변경할 수 있다. 새로운 index가 생성되거나 mapping이 update될 경우에만 제한을 확인한다. mapping이 변경되면 기존의 2.3 이전 index에만 영향을 준다.

Scriptingedit

Groovy dependenciesedit

In previous versions of Elasticsearch, the Groovy scripting capabilities depended on the org.codehaus.groovy:groovy-all artifact. In addition to pulling in the Groovy language, this pulls in a very large set of functionality, none of which is needed for scripting within Elasticsearch. Aside from the inherent difficulties in managing such a large set of dependencies, this also increases the surface area for security issues. This dependency has been reduced to the core Groovy language org.codehaus.groovy:groovy artifact.

이전 버전의 Elasticsearch에서, Groovy scripting 기능은 org.codehaus.groovy : groovy-all artifact에 의존했다. Groovy 언어를 사용하는 것 외에도, 이것은 매우 많은 기능을 가지고 오게되는데, 어떤 것도 Elasticsearch 내에서 script를 작성하는 데 필요하지는 않다. 그러한 대규모 의존성을 관리하는 고유한 어려움외에도 의존성이 크면 보안 이슈가 증가한다. 이 의존성은 핵심 Groovy 언어 org.codehaus.groovy : groovy artifact로 축소되었다.

Analyze API changesedit

The deprecated filters/token_filters/char_filters parameter has been renamed filter/token_filter/char_filter. And filters/token_filters/char_filters has been removed in 5.0.0

deprecate된 filters/token_filters/char_filters parameter는 filter/token_filter/char_filter로 이름이 변경되었다. 그리고, filters/token_filters/char_filters 는 5.0.0 에서 제거되었다.

'2.X > 8. Breaking Changes' 카테고리의 다른 글

v2.4-01. Query DSL  (0) 2017.10.15
v2.4-02. Index Templates  (0) 2017.10.15
v2.2 Breaking changes  (0) 2017.10.15
v2.1 Breaking changes  (0) 2017.10.15
v2.1-01. Search changes  (0) 2017.10.15