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
