Backend Development 9 min read

Key New Features and Changes in Elasticsearch 8.0 Release

Elasticsearch 8.0 introduces major updates such as 7.x REST API compatibility headers, default‑enabled security with enrollment tokens, protected system indices, a preview KNN search API, storage‑efficient field types, faster geo indexing, PyTorch model support, and numerous deprecations and bug fixes across aggregations, allocation, analysis, authentication, and core engine components.

Laravel Tech Community
Laravel Tech Community
Laravel Tech Community
Key New Features and Changes in Elasticsearch 8.0 Release

Introduction

Elasticsearch is a distributed, multi‑tenant full‑text search engine built on Lucene, offering an HTTP web interface and schema‑free JSON documents. Version 8.0, released after nearly three years, brings a host of new features and improvements.

7.x REST API Compatibility

Elasticsearch 8.0 adds optional 7.x compatibility headers that allow clients to send requests compatible with 7.x and receive 7.x‑compatible responses, easing migration while still encouraging native 8.0 usage.

Security Features Enabled by Default

Security (authentication, authorization, TLS) is now enabled and configured automatically on first start. Elasticsearch generates a registration token for Kibana or new nodes, removing the need for manual certificate generation or YAML changes.

Known Issue – Password Reset on ARM/macOS M1

On ARM or macOS M1 installations from archives, the elastic user password and Kibana token are not generated automatically. Use the reset‑password tool to create the password:

bin/elasticsearch-reset-password -u elastic

Then create a Kibana enrollment token:

bin/elasticsearch-create-enrollment-token -s kibana

Improved System Index Protection

System indices now require the allow_restricted_indices privilege set to true for access, and the superuser role no longer has write rights to them, encouraging use of Kibana or official APIs instead of direct manipulation.

New KNN Search API (Technical Preview)

The KNN search API uses the dense_vector field to perform approximate nearest‑neighbor searches, enabling faster, scalable similarity queries for recommendation and NLP use cases compared to the older exact script_score approach.

Storage Savings for Keyword, Match‑Only‑Text, and Text Fields

Updated inverted index encoding reduces index size for keyword , match_only_text , and text fields, achieving up to a 14.4% reduction for message fields and an overall 3.5% disk‑space saving.

Faster Indexing for Geo and Range Fields

Multi‑dimensional point indexing for geo_point , geo_shape , and range fields is now 10‑15% faster at the Lucene level, improving indexing throughput for geospatial workloads.

PyTorch Model Support for NLP

Elasticsearch 8.0 can now ingest externally trained PyTorch models for inference, bringing modern NLP and search capabilities to the Elastic Stack.

Other Notable Changes

Aggregations: removed adjacency matrix, MovingAverage pipeline, deprecated _time/_term sorting, and date‑histogram interval.

Allocation: removed include_relocations setting.

Analysis: cleaned up versioned deprecations and removed pre‑configured delimited_payload_filter .

Authentication: added file and native realms by default, refined NameID handling, and enforced realm order configuration.

Cluster Coordination: removed connection timeout and delayed state recovery support.

Distributed: removed sync‑flush and cluster.remote.connect setting.

Engine: rejected merges with only_expunge_deletes or max_num_segments , removed per‑type index stats, and dropped translog retention settings.

Features/CAT APIs: deprecated local parameter for _cat/indices and _cat/shards .

Features/ILM+SLM: defaulted cluster.routing.allocation.enforce_default_tier_preference to true.

Features/Indices APIs: defaulted prefer_v2_templates to true, removed deprecated _upgrade API, eliminated include_type_name from REST, and removed template field from index templates.

Infra/Core: cleaned up node directory prefixes, removed bootstrap.system_call_filter , node.max_local_storage_nodes , Joda dependencies, and camel‑case date/time format names.

Packaging: dropped SysV init support, removed JAVA_HOME handling, and now requires Java 17.

backendIndexingElasticsearchsecurityAPIkNNSearch
Laravel Tech Community
Written by

Laravel Tech Community

Specializing in Laravel development, we continuously publish fresh content and grow alongside the elegant, stable Laravel framework.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.