6.x/8. Breaking Changes

v6.0-11. Mapping changes

drscg 2017. 12. 20. 16:12

Coercion of boolean fieldsedit

Previously, Elasticsearch recognized the strings truefalseonoffyesno01 as booleans. Elasticsearch 6.0 recognizes only the strings true and false as booleans and will throw an error otherwise. For backwards compatibility purposes, during the 6.x series the previous coercion rules will continue to work on pre-6.0 indices. This means that you do not need to change affected existing mappings immediately. However, it is not possible to create new indices from existing index templates that violate the strict boolean coercion rules.

이전에는, Elasticsearch는 truefalseonoffyesno01 라는 string을 boolean으로 인식했었다. Elasticsearch 6.0 에서는 true 와 false 만을 boolean으로 인식하고, 그 외에는 error가 발생한다. 이전 버전과의 호환성을 위하여, 6.x 에서, 6.0 이전 indices에서 이 rule은 계속 작동한다. 즉, 영향을 받을 기존의 mapping을 즉시 변경할 필요는 없다. 하지만 엄격한 boolean rule을 위반하는 기존 index template에서 새로운 index를 생성하는 것은 불가능하다.

The _all meta field is now disabled by defaultedit

On new mappings, the _all meta field that contains a copy of the text from each field is now disabled by default. The query_string and simple_query_string queries that previously used _allto search will now check if _all is enabled/disabled and switch to executing the query across all fields if _all is disabled. _all can no longer be configured for indices created with Elasticsearch version 6.0 or later.

새로운 mapping에서, 각 field의 text 복사본을 포함하는 _all meta field는 기본적으로 disable되어 있다._all 을 search하기 위해 이전에 사용했던 query_string 과 simple_query_string query는 이제 _all 이 enable/disable되어 있는지 확인하고, _all 이 disable된 경우 모든 field에 대해 query를 실행하도록 바뀐다. Elasticsearch 6.0 이상으로 생성된 index에 대해서는 _all 을 더 이상 설정할 수 없다.

The include_in_all mapping parameter is now disallowededit

Since the _all field is now disabled by default and cannot be configured for indices created with Elasticsearch 6.0 or later, the ‘include_in_all` setting is now disallowed for these indices’ mappings.

_all field는 현재 기본적으로 disable되어 있고, Elasticsearch 6.0 또는 그 이후 버전으로 생성된 index에 대해서는 설정할 수 없으므로, 이제는 이러한 index의 mapping에 대해 include_in_all 설정을 허용하지 않는다.

Unrecognized match_mapping_type options not silently ignorededit

Previously Elasticsearch would silently ignore any dynamic templates that included a match_mapping_type type that was unrecognized. An exception is now thrown on an unrecognized type.

이전에는, Elasticsearch는 알 수 없는 match_mapping_type type을 포함하는 dynamic template을 조용히 무시했다. 이제 unrecognized type의 예외가 발생한다.

Validation of locale on date fieldsedit

The locale option of date fields previously allowed almost any string values, and unrecognized values would simply be ignored. Unrecognized values are now rejected on indices created with Elasticsearch 6.0 or newer.

이전에는, date field의 locale option은 거의 모든 string 값을 허용했으며, 인식할 수 없는 값은 단순히 무시되었다. Elasticsearch 6.0 이상으로 생성된 index에서는 인식할 수 없는 값은 거부된다.


'6.x > 8. Breaking Changes' 카테고리의 다른 글

v6.0-13. Percolator changes  (0) 2017.12.20
v6.0-12. Packaging changes  (0) 2017.12.20
v6.0-10. Java API changes  (0) 2017.12.20
v6.0-09. Ingest changes  (0) 2017.12.20
v6.0-08. Indices changes  (0) 2017.12.20