The Solr PMC is pleased to announce the release of Apache Solr 10.1.0.

Solr is the blazing-fast, open source, multi-modal search platform built on 
Apache Lucene. It powers full-text, vector, analytics, and geospatial search at 
many of the world's largest organizations. Other major features include 
Kubernetes and docker integration, streaming, highlighting, faceting, and 
spellchecking.

Solr 10.1.0 is available for immediate download at:

  <https://solr.apache.org/downloads.html>

## Solr 10.1.0 Release Highlights:

- Minimum Java version: **Java 21** for Solr server, **Java 17** for SolrJ
- Powered by **Lucene 10.4**, with numerous small and large improvements. 
(<https://lucene.apache.org/core/10_4_0/index.html>)
- Jetty 12 / Jakarta EE 10
- Numerous dependency upgrades across the release, including Kafka and the 
OpenTelemetry/Prometheus stack.
- Docker: official images use Java 25 and Ubuntu 24 (Noble Numbat)

### Querying and Indexing

- New range field types (Int/Long/Float/DoubleRangeField) with an experimental 
numericRange parser and docValues filter optimization; plus expanded join 
parsers (auxIndexJoin, globalOrdinalsJoin, join) and a new Intervals Query 
Parser.
- New CombinedQuerySearchHandler for hybrid search via reciprocal rank fusion 
(RRF), with collapse/Query Elevation support and a new reRankCutoff field; 
streaming expressions' rollup function gained new aggregate metrics and a path 
parameter.
- Nested vector search support (best-child retrieval diversified by parent, 
multi-valued dense vectors), a new late-interaction reranking field type, a 
knnAlgorithm="flat" option to skip HNSW for exact search, and vector existence 
queries; fixed GPU vector indexing silently falling back to CPU.
- New DocumentEnrichmentUpdateProcessorFactory for LLM-based document 
enrichment at index time.
- SPLITSHARD now supports router.field routing on docValues fields; Export 
Writer can include stored fields in its output; fixed a disk space check bug in 
shard splitting.
- Fixed several query correctness bugs: shards.preference ignored on 
cross-collection joins, incorrect rerank+sort combinations, join queries 
combined with query limits, complement()/intersect() streaming expressions 
returning wrong results, and NOT expressions requiring an explicit *:*.

### Major changes

- OTLP metric export now uses dot-separated OTel metric names — a back-compat 
break from 10.0.
- MemoryCircuitBreaker now measures post-GC live heap data instead of a moving 
average — a breaking API change.
- Removed support for PKI Authentication v1 and the experimental 
solr.api.v2.enabled property.

- JWT Authentication's blockUnknown now defaults to true, blocking 
unauthenticated requests by default — a breaking change for setups relying on 
pass-through auth.
- SolrCloud requests are now authorized against the collection of the core 
actually serving them, not the "collection" request parameter.
- New solrConnection-based HTTP connection support lets cross-collection joins, 
streaming expressions, the SQL JDBC driver, CloudSolrClient, and CLI tools 
reach SolrCloud over HTTP(S) without direct ZooKeeper access; a new 
allowZkHosts setting restricts which connection strings such features may use.

### SolrJ

- New v2 APIs and matching SolrJ classes: System Info, collection-properties, 
node healthcheck/properties, and JAX-RS-based ListTasks/TaskStatus/cluster 
command-status APIs.
- New unified HttpSolrClient base class, implemented by both Jetty- and 
JDK-HttpClient-based SolrClients (builder prefers Jetty, falls back to JDK).
- HttpJettySolrClient/HttpJdkSolrClient thread-pool defaults changed (no longer 
forces 32 threads or caps at 256), plus multiple reliability fixes 
(connection-loss handling, thread leaks, semaphore leaks, a rare deadlock).
- New ConcurrentUpdateJdkSolrClient; ConcurrentUpdateSolrClient can now report 
which documents in a batch failed to reach the server via a registered error 
handler.
- Optimized the JavaBin codec's internal buffer sizing to cut GC pressure on 
SolrJ clients under heavy indexing load.
- Fixed SolrJ's local-parameter-value encoding producing lossy/invalid output 
with backslashes or leading quotes, affecting facet response keys and SQL LIKE 
queries; published POMs now include resolved dependency versions.

### Other

- SolrCloud operational improvements: a new setting to clean up unknown core 
data on creation, reduced ZooKeeper calls during distributed multi-collection 
search, state.json compression when the Overseer is disabled, and locked Admin 
APIs can now call each other within the same resource tree.
- Fixed several SolrCloud reliability bugs: CloudSolrClient 
deleteById/state-refresh issues, ZkController over-reacting to ZooKeeper 
reconnects, HttpShardHandler concurrency bugs causing hangs or 500s, PRS-based 
collection creation returning too early, and Balance Replicas now enforcing one 
replica per shard per node.
- Leader/follower replication now restarts using the latest index generation if 
the selected generation expires mid-download; readOnly collections and 
schema-change handling during concurrent requests were also made more robust.
- New jvm_system_memory_bytes metric; fixed several metrics/OpenTelemetry bugs 
including a memory leak from retained SolrIndexSearcher metric gauges and a 
race condition in CircuitBreaker registration; the release also includes 
numerous dependency upgrades, such as Lucene 10.4, Jetty, Kafka, and the 
OpenTelemetry/Prometheus stack.
- CoreAdmin API gained an UPGRADECOREINDEX action to upgrade an index in place; 
the CLI's configset upload no longer blocks certain file types.
- CrossDC gained Kafka property flexibility, Prometheus metrics, and a health 
endpoint, plus fixes for out-of-order partition processing, incorrect offset 
commits, and other reliability issues.

### Deprecations and Removals

- Deprecated the SolrStream "core URL" constructors, the 
PingRequestHandler/SolrPing family (the ping endpoint), and the Overseer 
ADDROLE/REMOVEROLE operations.
- Removed deprecated LocalSolrQueryRequest, 
CloudSolrClient.connect()/connect(long, TimeUnit), and 
ClusterStateProvider.connect().
- Removed the deprecated geohash()/ghhsin() function queries and old 
pre-QueryCommand SolrIndexSearcher search methods.
- Removed the old streamFunctions mechanism in GraphHandler for registering 
streaming expressions, and a broken disk-space optimization used during 
full-recovery.
- Removed deprecated http.status_code/http.method telemetry tags and Request ID 
based tracing.

Please refer to the Upgrade Notes in the Solr Ref Guide for information on 
upgrading from previous Solr versions:

  
<https://solr.apache.org/guide/solr/10_1/upgrade-notes/solr-upgrade-notes.html>

Please read CHANGELOG.md for a full list of new features, changes and bugfixes:

  <https://solr.apache.org/10_1_0/changes/Changes.html>
----

Links:

- https://www.apache.org/legal/release-policy.html#release-announcements
- https://www.gnupg.org/gph/en/manual/x135.html

Cheers,
Andrzej

Reply via email to