6.x/8. Breaking Changes

v6.0-10. Java API changes

drscg 2017. 12. 20. 16:11

setSource methods require XContentTypeedit

Previously the setSource methods and other methods that accepted byte/string representations of an object source did not require the XContentType to be specified. The auto-detection of the content type is no longer used, so these methods now require the XContentType as an additional argument when providing the source in bytes or as a string.

이전에 object source의 byte/string 을 위한 setSource method와 다른 method는 XContentType을 지정할 필요가 없었다. content type의 auto-detection은 더 이상 사용되지 않으므로, 이들 method는 source를 byte 또는 string으로 제공할 때 XContentType을 추가 인수로 요구한다.

DeleteByQueryRequest requires an explicitly set 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, a DeleteByQueryRequest requires an explicit query be set.

이전 버전의 Elasticsearch에서는, 명시적으로 query가 없는 delete by query가 허용되어서, match_all이 기본 query로 사용되어, 결과적으로 모든 문서가 삭제되었다. 버전 6.0.0 에서 부터, DeleteByQueryRequest는 명시적으로 query가 설정되어야 한다.

InternalStats and Stats getCountAsString() method removededit

The count value in the stats aggregation represents a doc count that shouldn’t require a formatted version. This method was deprecated in 5.4 in favour of just using String.valueOf(getCount()) if needed

stats aggregation의 count 값은 형식화된 버전(formatted version)을 요구해서는 안되는 문서 수를 나타낸다. 이 method는 5.4에서 deprecate되었으므로, 필요한 경우 String.valueOf(getCount()) 를 사용하는 것이 좋다.

ActionRequestBuilder#execute returns ActionFuture rather than ListenableActionFutureedit

When sending a request through the request builders e.g. client.prepareSearch().execute(), it used to be possible to call addListener against the returned ListenableActionFuture. With this change anActionFuture is returned instead, which is consistent with what the Client methods return, hence it is not possible to associate the future with listeners. The execute method that accept a listener as an argument can be used instead.

request builder를 통해 request를 전송할 경우(예: client.prepareSearch().execute()), return된 ListenableActionFuture 에 대해 addListener 를 호출할 수 있었다. 이 변경으로, 대신 ActionFuture 가 return된다. 이는 Client method가 return하는 것과 일치한다. 따라서 future를 listener와 연관시킬 수 없다. 대신 listener를 인수로 받아들이는 execute method가 사용될 수 있다.

Terms.Order and Histogram.Order classes replace by BucketOrderedit

The termshistogram, and date_histogram aggregation code has been refactored to use common code for ordering buckets. The BucketOrder class must be used instead of Terms.Order andHistogram.Order. The static methods in the BucketOrder class must be called instead of directly accessing internal order instances, e.g. BucketOrder.count(boolean) and BucketOrder.aggregation(String, boolean). Use BucketOrder.key(boolean) to order the termsaggregation buckets by _term.

termshistogramdate_histogram aggregation code는 bucket 정렬에 공통 code를 사용하도록 refactoring되었다. BucketOrder class는 Terms.Order 와 Histogram.Order 대신에 사용되어야 한다.BucketOrder class의 static method는 내부 정렬 instance에 직접 access하는 대신 호출되어야 한다. 예: BucketOrder.count(boolean) 과 BucketOrder.aggregation(String, boolean)terms aggregation bucket을 _term 으로 정렬하려면 BucketOrder.key(boolean) 을 사용하자.

getTookInMillis() removed in BulkResponseSearchResponseand TermVectorsResponseedit

In BulkResponseSearchResponse and TermVectorsResponse getTookInMiilis() method has been removed in favor of getTook method. getTookInMiilis() is easily replaced bygetTook().getMillis().

BulkResponseSearchResponseTermVectorsResponse 에서, getTook method를 위해 getTookInMiilis() method는 제거되었다 getTookInMiilis() 는 getTook().getMillis() 로 대체할 수 있다.

GetField and SearchHitField replaced by DocumentFieldedit

As GetField and SearchHitField have the same members, they have been unified intoDocumentField.

GetField 는 SearchHitField 는 동일한 member를 가지므로, DocumentField 로 통합되었다.

Some Aggregation classes have moved packagesedit

The classes for the variants of the range aggregation (geo_distance, date and ip) were moved into the org.elasticsearch.search.aggregations.bucket.range package.

range aggregation류의 class들(geo_distance, date 및 ip)은 org.elasticsearch.search.aggregations.bucket.range package로 이동되었다.

The org.elasticsearch.search.aggregations.bucket.terms.support package was removed and the classes were moved to org.elasticsearch.search.aggregations.bucket.terms.

org.elasticsearch.search.aggregations.bucket.terms.support package는 제거되었고, class들은 org.elasticsearch.search.aggregations.bucket.terms 로 옮겨졌다.

The filter aggregation classes were moved to org.elasticsearch.search.aggregations.bucket.filter

filter aggregation class들은 org.elasticsearch.search.aggregations.bucket.filter 로 옮겨졌다.

Constructor for PercentileRanksAggregationBuilder has changededit

It is now required to include the desired ranks as a non-null, non-empty array of doubles to the builder’s constructor, rather than configuring them via a setter on the builder. The setter method values() has correspondingly been removed.

이제 builder의 setter를 통해 구성하지 않고, 원하는 순위(rank)를, builder의 생성자에 null이 아닌 비어 있지 않은 double 배열로 포함시켜야 한다. 이에 따라, setter method values() 가 제거되었다.


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

v6.0-12. Packaging changes  (0) 2017.12.20
v6.0-11. Mapping changes  (0) 2017.12.20
v6.0-09. Ingest changes  (0) 2017.12.20
v6.0-08. Indices changes  (0) 2017.12.20
v6.0-07. Geo changes  (0) 2017.12.20