Unquoted JSONedit
In previous versions of Elasticsearch, JSON documents were allowed to contain unquoted field names. This feature was removed in the 5.x series, but a backwards-compatibility layer was added via the system property elasticsearch.json.allow_unquoted_field_names
. This backwards-compatibility layer has been removed in Elasticsearch 6.0.0.
Elasticsearch의 이전 버전에서는, JSON document에 인용되지 않은(인용부호가 없는) field name을 사용할 수 있었다. 이 기능은 5.x 시리즈에서 삭제되었지만, elasticsearch.json.allow_unquoted_field_names
를 통해 이전 버전과의 호환성(backwards-compatibility) layer에 추가되었다. 이 이전 버전과의 호환성 layer는 Elasticsearch 6.0.0에서 제거되었다.
Duplicate Keys in JSON, CBOR, Yaml and Smileedit
In previous versions of Elasticsearch, documents were allowed to contain duplicate keys. Elasticsearch 6.0.0 enforces that all keys are unique. This applies to all content types: JSON, CBOR, Yaml and Smile.
Elasticsearch의 이전 버전에서는, document가 중복되는 Key를 사용할 수 있었다. Elasticsearch 6.0.0에서 모든 key는 유일해야 한다. 이것은 모든 content type(JSON, CBOR, Yaml, Smile)에 적용된다.
Content-Type Auto-detectionedit
In previous versions of Elasticsearch, having a proper Content-Type for the data in a request was not enforced. Elasticsearch 6.0.0 enforces that all requests with a body must have a supported Content-Type and this type will be used when parsing the data.
Elasticsearch의 이전 버전에서는, request에 대해 적절한 Content-Type을 가지지 않아도 되었다. Elasticsearch 6.0.0은 body가 있는 모든 request는 지원되는 Content-Type이 있어야 하며, 이 type이 data를 parsing할 때 사용된다.
When using the source
query string parameter, the source_content_type
parameter must also be specified with the media type of the source.
source
query string 매개변수를 사용할 경우, source_content_type
매개변수 또한 반드시 spurce의 media type이 지정되어야 한다.
Boolean API parametersedit
All REST APIs parameters (both request parameters and JSON body) support providing boolean "false" as the value false
and boolean "true" as the value true
. All other values will raise an error.
모든 REST API 매개변수(request 매개변수와 JSON body 모두)는 boolean "false"를 false
값으로 boolean "true"를 true
값으로 지원한다. 그 외의 모든 값은 error가 발생한다.
Analyze API changesedit
The deprecated request parameters and plain text in request body has been removed. Define parameters in request body.
deprecate된 request 매개변수와 request body에서 plain text는 제거되었다. request body에 매개변수를 지정하자.
Support custom normalizer in Analyze APIedit
Analyze API can analyze normalizer and custom normalizer. In previous versions of Elasticsearch, Analyze API is requiring a tokenizer
or analyzer
parameter. In Elasticsearch 6.0.0, Analyze API can analyze a text as a keyword field with custom normalizer or if char_filter
/filter
is set and tokenizer
/analyzer
is not set.
Analyze API는 normalizer와 사용자 정의 normalizer를 분석할 수 있다. 이전 버전의 Elasticsearch에서는, Analyze API가 tokenizer
또는 analyzer
매개 변수를 필요로 한다. Elasticsearch 6.0.0에서 Analyze API는 사용자 정의 normalizer를 사용하거나 char_filter
/filter
가 설정되고 tokenizer
/analyzer
가 설정되지 않은 경우, text를 keyword field로 분석할 수 있다.
Indices exists APIedit
The ignore_unavailable
and allow_no_indices
options are no longer accepted as they could cause undesired results when their values differed from their defaults.
ignore_unavailable
그리고 allow_no_indices
option은 그 값이 기본값과 다를 경우 원하지 않은 결과가 발생할 수 있어, 더 이상 허용되지 않는다.
timestamp
and ttl
in index requestsedit
timestamp
and ttl
are not accepted anymore as parameters of index/update requests.
timestamp
과 ttl
은 index/update request의 매개변수로 더 이상 허용되지 않는다.
Refresh requests with one or more shard failures return HTTP 500 response instead of 200edit
Refresh requests that are broadcast to multiple shards that can have one or more shards fail during the request now return a 500 response instead of a 200 response in the event there is at least one failure.
request 중에 하나 이상의 shard가 실패할 수 있는, 여러 shard에 brocast되는 refresh request는 적어도 하나의 실패가 발생하면 response 200 대신 500을 return한다.
Delete by Query API requires an explicit queryedit
In previous versions of Elasticsearch, delete by query requests without an explicit query were accepted, match_all was used as the default query and all documents were deleted as a result. From version 6.0.0, delete by query requests require an explicit query.
Elasticsearch의 이전 버전에서는, 명시적인 query가 없는 delete by query request가 허용되었다. match_all이 default query로 사용되었고, 결과적으로 모든 document가 삭제되었다. 6.0.0 부터, delete by query request는 명시적인 query가 필요하다.
DELETE document calls now implicitly create the typeedit
Running DELETE index/type/id
now implicitly creates type
with a default mapping if it did not exist yet.
DELETE index/type/id
를 실행하면, type이 아직 존재하지 않는 경우, 암묵적으로 기본 mapping을 사용하여 type
을 생성한다.
Indices information APIsedit
Previously it was possible to execute GET /_aliases,_mappings
or GET /myindex/_settings,_alias
by separating mulitple types of requests with commas in order to retrieve multiple types of information about one or more indices. This comma-separation for retrieving multiple pieces of information has been removed.. GET /_all
can be used to retrieve all aliases, settings, and mappings for all indices. In order to retrieve only the mappings for an index, GET /myindex/_mappings
(or _aliases
, or _settings
).
이전에는, 하나 이상의 indices에 대한 여러 type의 정보를 가져오기 위해, 여러 type의 request를 comma(,)로 구분하여, GET /_aliases,_mappings
또는 GET /myindex/_settings,_alias
를 실행할 수 있었다. 여러 개의 정보를 가져오기 위한 이 comma-separation이 제거되었다. GET /_all
을 사용하여 모든 indices에 대한 alias, setting, mapping을 모두 가져올 수 있다. index에 대한 mapping만 가져오려면 GET /myindex/_mappings
(또는 _aliases
또는 _settings
)를 사용하자.
Requests to existing endpoints with incorrect HTTP verb now return 405 responsesedit
Issuing a request to an endpoint that exists, but with an incorrect HTTP verb (such as a POST
request to /myindex/_settings
) now returns an HTTP 405 response instead of a 404. An Allow
header is added to the 405 responses containing the allowed verbs. For example:
존재하지만 잘못된 HTTP verb(예: /myindex/_settings
에 대한 POST
request)가 있는 endpoint에 request를 보내면 404 대신 HTTP 405 response가 반환된다. Allow
header가 allowed verb를 포함하는 405 response에 추가되었다. 예를 들자면
$ curl -v -XPOST 'localhost:9200/my_index/_settings' * Trying 127.0.0.1... * TCP_NODELAY set * Connected to localhost (127.0.0.1) port 9200 (#0) > POST /my_index/_settings HTTP/1.1 > Host: localhost:9200 > User-Agent: curl/7.51.0 > Accept: */* > < HTTP/1.1 405 Method Not Allowed < Allow: PUT,GET < content-type: application/json; charset=UTF-8 < content-length: 134 < { "error" : "Incorrect HTTP method for uri [/my_index/_settings] and method [POST], allowed: [PUT, GET]", "status" : 405 } * Curl_http_done: called premature == 0 * Connection #0 to host localhost left intact
Disallow using _cache
and _cache_key
edit
The _cache
and _cache_key
options in queries have been deprecated since version 2.0.0 and have been ignored since then, issuing a deprecation warning. These options have now been completely removed, so using them now will throw an error.
query에 있는 _cache
와 _cache_key
option은 버전 2.0.0부터 deprecate되었고, 그 때부터 deprecation warning을 발생하면서 무시되었다. 이 option은 이제 완전히 제거되었으므로 지금 사용하면 error가 발생한다.
IndexClosedException to return 400 status codeedit
An IndexClosedException
is returned whenever an api that doesn’t support closed indices (e.g. search) is called passing closed indices as parameters and ignore_unavailable
is set to false
. The response status code returned in such case changed from 403
to 400
closed indices를 지원하지 않는 API(예: search)가 closed indices를 매개 변수로 전달하고,ignore_unavailable
은 false
로 설정될 때마다 IndexClosedException
이 발생한다. 이 경우 return된 response status code는 403
에서 400
으로 변경되었다.
'6.x > 8. Breaking Changes' 카테고리의 다른 글
v6.0-18. Search and Query DSL changes (0) | 2017.12.20 |
---|---|
v6.0-17. Scripting changes (0) | 2017.12.20 |
v6.0-15. Reindex changes (0) | 2017.12.20 |
v6.0-14. Plugins changes (0) | 2017.12.20 |
v6.0-13. Percolator changes (0) | 2017.12.20 |