This page details the current plans for future releases, these plans may change from time to time so check back regularly.

It is not a goal to list all Jira issues in a release here. Only major & controversial features, deprecations, breaking changes and other tasks that need coordination between releases need an entry.

Deprecations

They are listed here separately on this page: Deprecations

Solr 10+ Roadmap

SolrCloud

HTTP API / OpenAPI / JAX-RS

SolrJ / HttpClient

Solr 9x

ItemDescriptionContributorsThemeJira
HTTP 1 → HTTP 2 Switch the remaining HTTP 1 usage within Solr to HTTP 2.  Apache HttpClient should no longer be used on the server.Smiley

Modularize SolrJSolrJ should be lighter-weight (smaller) for more users; fewer dependencies.  Add modules for some dependencies and functionality.Smiley, Jan, Houston, others

Use JAX-RSJAX-RS based V2 API definitions; use more and more.  Jason

Solr 9.0

The theme of this release is to use Lucene 9.0 and to introduce some major frameworks.

We should not remove all features/APIs deprecated in 8.x yet, to give users a path to upgrade to 9.x without all the extra noise. Deprecated features can be removed in a later 9.x release, when the new alternative is solid and well known.

ItemDescriptionContributorsThemeJira
First party packages & Slim Solr distributionSolr should have first party packages, and a slim Solr tarball that doesn't have the first party packagesIshan, Noble, Jan, et. al.Lean Solr Core

V2 API to be the defaultRef guide docs should use V2, where necessary we build V2 APIs, switch SolrJ to use V2 APIs, etc.
Usability
Autoscaling / Replica assignment V2

A new pluggable framework replaces current autoscaling


Andrzej, Ilan, NobleLean Solr Core

HDFS moved away from Solr-CoreBuild a first party package out of HDFS supportIstvan Farkas, GezapetiLean Solr Core
Remove Ant support



Tech-debt

Index Lifecycle ManagementAutomatically move indices between hot, warm and cold phasesAtri SharmaFeature
POJOs instead of loosely typed objectsStart using POJOs/interfaces wherever possible in public APIs where ever possibleNoble Paul

Remove Filter.java from SolrFilter.java is a legacy relic from earlier Lucene days.  Solr uses Filter in a variety of places where it can use other constructs or in some cases we need to make new constructs.  In some cases like TwoPhaseIterator, this is an optimization.David SmileyTech-debt

Solr 8.9

Last version before 9.0?

ItemDescriptionContributorsThemeJira
Alternate SolrJ APIs without using NamedList/SimpleOrderedMap/MapGet rid of concrete classes such as NamedList,SimpleOrderedMap, Map, etc and build our public APIs with interfacesNoble PaulClean-API

New Cluster APIStandard set of APIs which consists of only interfaces. We should ensure that They are used wherever possible in server/client code. We should expose these interfaces to our plugins. They should be well -documented and we must always strive to maintain backward compatibility on these interfaces between versionsNoble PaulClean-API

New Remote Call APIRemote Calls should have simple constructs and they must be public interfaces. This should be used in all inter-node/client-server communicationsNoble PaulClean-API

Multi-threaded search (SOLR-13350)

Multi threaded search across multiple segments at once, using CollectorManagers


Ishan Chattopadhyaya, Atri SharmaOptimization

SIP-9

Advanced Query parser and supporting lucene filters


Mike Nibeck (LOC contributor), Gus HeckFeature