[[release-highlights-7.8.0]] == 7.8.0 release highlights ++++ 7.8.0 ++++ //NOTE: The notable-highlights tagged regions are re-used in the //Installation and Upgrade Guide // tag::notable-highlights[] [float] === Geo improvements We have made several improvements to geo support in {es} 7.8. - You can now run an aggregation that finds the bounding box (top left point and bottom right point) that contains all shapes matching a query. A shape is anything that is defined by multiple points. See {ref}/search-aggregations-metrics-geobounds-aggregation.html[Geo Bounds Aggregations]. - {ref}/search-aggregations-bucket-geohashgrid-aggregation.html[GeoHash grid aggregations] and {ref}/search-aggregations-bucket-geotilegrid-aggregation.html[map tile grid aggregations] allow you to group geo_points into buckets. - {ref}/search-aggregations-metrics-geocentroid-aggregation.html[Geo centroid aggregations] allow you to compute the weighted https://en.wikipedia.org/wiki/Centroid[centroid] from all coordinate values for a geo_point field. // end::notable-highlights[] // tag::notable-highlights[] [float] === Add support for t-test aggregations {es} now supports a `t_test` metrics aggregation, which performs a statistical hypothesis test in which the test statistic follows a https://en.wikipedia.org/wiki/Student%27s_t-distribution[Student’s t-distribution] under the null hypothesis on numeric values extracted from the aggregated documents or generated by provided scripts. In practice, this will tell you if the difference between two population means are statistically significant and did not occur by chance alone. See {ref}/search-aggregations-metrics-ttest-aggregation.html[T-Test Aggregation]. // end::notable-highlights[] // tag::notable-highlights[] [float] === Expose aggregation usage in feature usage API It is now possible to fetch a count of aggregations that have been executed via the {ref}/cluster-nodes-usage.html[node features API]. This is broken down per combination of aggregation and data type, per shard on each node, from the last restart until the time when the counts are fetched. When trying to analyze how {es} is being used in practice, it is useful to know the usage distribution across aggregations and field types. For example, you might be able to conclude that a certain part of an index is not used a lot and could perhaps can be eliminated. // end::notable-highlights[] // tag::notable-highlights[] [float] === Support `value_count` and `avg` aggregations over histogram fields {es} now implements `value_count` and `avg` aggregations over histogram fields. When the `value_count` aggregation is computed on {ref}/histogram.html[histogram fields], the result of the aggregation is the sum of all numbers in the `counts` array of the histogram. When the average is computed on histogram fields, the result of the aggregation is the weighted average of all elements in the `values` array taking into consideration the number in the same position in the `counts` array. // end::notable-highlights[] // tag::notable-highlights[] [float] === Reduce aggregation memory consumption {es} now attempts to save memory on the coordinating node by delaying deserialization of the shard results for an aggregation until the last second. This is helpful as it makes the shard-aggregations results "short lived" garbage. It also should shrink the memory usage of aggregations when they are waiting to be merged. Additionally, when the search is in batched reduce mode, {es} will force the results to be serialized between batch reduces in an attempt to keep the memory usage as low as possible between reductions. // end::notable-highlights[] // tag::notable-highlights[] [float] === Scalar functions now supported in SQL aggregations When querying {es} using SQL, it is now possible to use scalar functions inside aggregations. This allows for more complex expressions, including within `GROUP BY` or `HAVING` clauses. For example: [source, sql] ---- SELECT MAX(CASE WHEN a IS NULL then -1 ELSE abs(a * 10) + 1 END) AS max, b FROM test GROUP BY b HAVING MAX(CASE WHEN a IS NULL then -1 ELSE abs(a * 10) + 1 END) > 5 ---- // end::notable-highlights[] // tag::notable-highlights[] [float] [[release-highlights-7.8.0-throttling]] === Increase the performance and scalability of {transforms} with throttling {transforms-cap} achieved GA status in 7.7 and now in 7.8 they are even better with the introduction of {ref}/transform-overview.html#transform-performance[throttling]. You can spread out the impact of the {transforms} on your cluster by defining the rate at which they perform search and index requests. Set the `docs_per_second` limit when you create or update your {transform}. // end::notable-highlights[] // tag::notable-highlights[] [float] [[release-highlights-7.8.0-mml]] === Better estimates for {ml} model memory usage For 7.8, we introduce dynamic estimation of the model memory limit for jobs in {ml-docs}/ootb-ml-jobs.html[ML solution modules]. The estimate is generated during the job creation. It uses a calculation based on the specific detectors of the job and the cardinality of the partitioning and influencer fields. It means the job setup has better default values depending on the size of the data being analyzed. // end::notable-highlights[] // tag::notable-highlights[] [float] [[release-highlights-7.8.0-loss-functions]] === Additional loss functions for {regression} {ml-docs}/dfa-regression.html#dfa-regression-lossfunction[Loss functions] measure how well a {ml} model fits a specific data set. In 7.8, we added two new loss functions for {regression} analysis. In addition to the existing mean squared error function, there are now mean squared logarithmic error and Pseudo-Huber loss functions. These additions enable you to choose the loss function that fits best with your data set. // end::notable-highlights[] // tag::notable-highlights[] [float] [[release-highlights-7.8.0-data-visualizer]] === Extended upload limit and explanations for Data Visualizer You can now upload files up to 1 GB in Data Visualizer. The file structure finder functionality of the Data Visualizer provides more detailed explanations after both successful and unsuccessful analysis which makes it easier to diagnose issues with file upload. // end::notable-highlights[]