[[release-highlights]]
== What's new in {minor-version}

Here are the highlights of what's new and improved in {es} {minor-version}!

For detailed information about this release, see the <<es-release-notes>> and
<<breaking-changes>>.

// Add previous release to the list
Other versions:
{ref-bare}/7.12/release-highlights.html[7.12]
| {ref-bare}/7.11/release-highlights.html[7.11]
| {ref-bare}/7.10/release-highlights.html[7.10]
| {ref-bare}/7.9/release-highlights.html[7.9]
| {ref-bare}/7.8/release-highlights.html[7.8]
| {ref-bare}/7.7/release-highlights.html[7.7]
| {ref-bare}/7.6/release-highlights-7.6.0.html[7.6]
| {ref-bare}/7.5/release-highlights-7.5.0.html[7.5]
| {ref-bare}/7.4/release-highlights-7.4.0.html[7.4]
| {ref-bare}/7.3/release-highlights-7.3.0.html[7.3]
| {ref-bare}/7.2/release-highlights-7.2.0.html[7.2]
| {ref-bare}/7.1/release-highlights-7.1.0.html[7.1]
| {ref-bare}/7.0/release-highlights-7.0.0.html[7.0]

// Use the notable-highlights tag to mark entries that
// should be featured in the Stack Installation and Upgrade Guide:
// tag::notable-highlights[]
// [discrete]
// === Heading
//
// Description.
// end::notable-highlights[]

// Omit the notable highlights tag for entries that only need to appear in the ES ref:
// [discrete]
// === Heading
//
// Description.

// tag::notable-highlights[]

[discrete]
[[frozen-tier-ga]]
=== Frozen tier is now GA

The frozen tier and partially mounted indices, formerly known as shared cache
{search-snaps}, are now generally available. We these features as technical
previews in 7.12. See the
{ref-bare}/7.12/release-highlights.html#frozen-tier-shared-snapshot-cache[7.12
announcement].

[discrete]
[[index-runtime-fields]]
=== Index runtime fields

Runtime fields let you dynamically create fields from other fields and document
properties at query time. These query-time runtime fields optimize for
flexibility over speed, letting you change them at any time.

With {minor-version}, you can now also create index-time runtime fields, trading
flexibility for better query performance. See {ref}/runtime-indexed.html[Index a
runtime field].

[discrete]
[[match-ipv4-ipv6-addresses-against-cidr-ranges-painless]]
=== Match IPv4 and IPv6 addresses against CIDR ranges in Painless

Painless expressions can now match IPv4 and IPv6 addresses against CIDR ranges.
This is useful for classifying and grouping IP addresses in security and
monitoring use cases. This feature is available in all contexts, including
runtime fields, ingest, search, and aggregations.

For example:

[source,painless]
----
CIDR myCidrRange = new CIDR('10.1.1.0/25');
myCidrRange.contains('10.1.1.127'); // true
myCidrRange.contains('10.1.1.129'); // false

myCidrRange = new CIDR('2001:0db8:85a3::/64');
myCidrRange.contains('2001:0db8:85a3:0000:0000:8a2e:0370:7334'); // true
myCidrRange.contains('2001:0db8:85a3:0001:0000:8a2e:0370:7334'); // false
----

[discrete]
[[new-combined-fields-query-type]]
=== New `combined_fields` query type

7.13 introduces the `combined_fields` query, new a Query DSL query type for
searching multiple `text` fields as a combined field. You can use the
`combined_fields` query as a simpler alternative to the `multi_match` query's
`cross_fields` type option. See the
{ref}/query-dsl-combined-fields-query.html[`combined_fields` query
documentation].

[discrete]
[[faster-terms-aggregations]]
=== Faster `terms` aggregations

We've significantly improved the speed of the `terms` aggregation when:

* It has no parent or child aggregations.
* Target indices have no deleted documents or were recently merged.
* You don't use document-level security.
* There's no top-level query.
* The field has global ordinals, such as a `keyword` or `ip` field.
* There are fewer than a thousand distinct terms.

Many time series use cases are likely to meet these criteria, particularly for
data in the cold or frozen tier.

[discrete]
[[dfa-inference-ga]]
=== Data frame analytics and inference are generally available

The ability to train outlier detection, regression, and classification models 
and then use those models to infer against incoming data becomes generally 
available in 7.13.

[discrete]
[[trained-model-aliases]]
=== Trained model aliases

To simplify the deployment and upgrade of trained models, the concept of model 
aliases is introduced in 7.13. When using a `model_alias` in an ingest pipeline, 
it is now possible to make changes to the underlying referenced model without 
having to update the pipeline. The underlying referenced model changes in place 
for all ingest pipelines automatically when the new model is loaded into cache.


// end::notable-highlights[]
