2.X/8. Breaking Changes

v2.0-08. Aggregation changes

drscg 2017. 10. 14. 15:14

Min doc count defaults to zeroedit

Both the histogram and date_histogram aggregations now have a default min_doc_count of 0instead of 1.

histogram 과 date_histogram aggregation 둘 모두는 min_doc_count 의 기본값으로 1 대신에 0 을 가진다.

Timezone for date fieldedit

Specifying the time_zone parameter in queries or aggregations on fields of type date must now be either an ISO 8601 UTC offset, or a timezone id. For example, the value +1:00 must now be written as +01:00.

date type의 field에 대한 query나 aggregation에 time_zone parameter의 지정은 반드시 ISO 8601 UTC offset 이나 timezone id 이어야 한다. 예를 들어, +1:00 값은 반드시 +01:00 으로 지정해야 한다.

Time zones and offsetsedit

The histogram and the date_histogram aggregation now support a simplified offset option that replaces the previous pre_offset and post_offset rounding options. Instead of having to specify two separate offset shifts of the underlying buckets, the offset option moves the bucket boundaries in positive or negative direction depending on its argument.

histogram 과 date_histogram aggregation은 이전 버전의 pre_offset 과 post_offset 을 대체하는, 더 간단해진 offset option을 지원한다. 두 개의 분리된 offset을 지정하는 대신에, 근본적으로 bucket을 이동한다. offset option은 bucket의 경계를 그것의 인수에 따라, +/- 방향으로 이동한다.

The date_histogram options for pre_zone and post_zone are replaced by the time_zone option. The behavior of time_zone is equivalent to the former pre_zone option. Setting time_zone to a value like "+01:00" now will lead to the bucket calculations being applied in the specified time zone. The key is returned as the timestamp in UTC, but the key_as_string is returned in the time zone specified.

pre_zone 과 post_zone 에 대한 date_histogram 은 time_zone option으로 대체되었다. time_zone 의 동작은 이전의 pre_zone option과 동일하다. time_zone 에 "+01:00" 같은 값을 설정하는 것은, bucket의 계산이 지정된 time zone으로 적용되어 이루어 진다. key 는 UTC의 timestamp로 return되고, key_as_string 은 지정된 time zone으로 return된다.

In addition to this, the pre_zone_adjust_large_interval is removed because we now always return dates and bucket keys in UTC.

이것 외에, 항상 UTC에서 date와 bucket key를 return하기 때문에, pre_zone_adjust_large_interval 은 제거되었다.

Including/excluding termsedit

include/exclude filtering on the terms aggregation now uses the same syntax as regexp queriesinstead of the Java regular expression syntax. While simple regexps should still work, more complex ones might need some rewriting. Also, the flags parameter is no longer supported.

terms aggregation에서 include/exclude filtering은 java 정규식 문법 대신 regexp queries와 동일한 문법을 사용한다. 간단한 regexp는 여전히 동작하지만, 좀 더 복잡한 것은 약간은 재작성해야 할 것이다. 또한, flags parameter는 더 이상 지원되지 않는다.

Boolean fieldsedit

Aggregations on boolean fields will now return 0 and 1 as keys, and "true" and "false" as string keys. See Boolean fields for more information.

이제, boolean field에 대한 집계는 0 과 1 을 key로, "true" 와 "false" 를 string key로 return한다. 자세한 것은 Boolean fields를 참고하자.

Java aggregation classesedit

The date_histogram aggregation now returns a Histogram object in the response, and the DateHistogram class has been removed. Similarly the date_rangeipv4_range, and geo_distanceaggregations all return a Range object in the response, and the IPV4RangeDateRange, andGeoDistance classes have been removed.

이제, date_histogram aggregation은 response에서 Histogram object를 return한다. 그리고, DateHistogram class는 제거되었다. 마찬가지로, date_rangeipv4_rangegeo_distance aggregation은 response에서 Range object를 return한다. 그리고, IPV4RangeDateRangeGeoDistance class는 제거되었다.

The motivation for this is to have a single response API for the Range and Histogram aggregations regardless of the type of data being queried. To support this some changes were made in the MultiBucketAggregation interface which applies to all bucket aggregations:

이렇게 한 것은, query된 data의 type에 관계없이, Range와 Histogram aggregation에 대해 동일한 response API를 가지게 하려는 것이다. 이러한 약간의 변경을 지원하기 위하여, MultiBucketAggregationinterface가 만들어졌고, 그것은 모든 bucket aggregation에 적용된다.

  • The getKey() method now returns Object instead of String. The actual object type returned depends on the type of aggregation requested (e.g. the date_histogram will return a DateTimeobject for this method whereas a histogram will return a Number).

    getKey()` method는 String 이 아닌 Object 를 return한다. 실제로 return되는 object의 type은 request된 aggregation의 type(예: date_histogram 은 이 method에 대해, DateTime object를 반환한다. 반면에, histogram 은 Number 를 return한다.)에 달려 있다.

  • getKeyAsString() method has been added to return the String representation of the key.

    getKeyAsString() method는 key의 String 표현을 return하기 위해 추가되었다.

  • All other getKeyAsX() methods have been removed.

    다른 모든 getKeyAsX() method는 제거되었다.

  • The getBucketAsKey(String) methods have been removed on all aggregations except the filters and terms aggregations.

    getBucketAsKey(String) method는 filters 와 terms aggregation을 제외한 모든 aggregation에서 제거되었다.


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

v2.0-06. Query DSL changes  (0) 2017.10.14
v2.0-07. Search changes  (0) 2017.10.14
v2.0-09. Parent/Child changes  (0) 2017.10.14
v2.0-10. Scripting changes  (0) 2017.10.14
v2.0-11. Index API changes  (0) 2017.10.13