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
Future possibilities
Not started; may need discussion
- SolrJ – drop support for the ZooKeeper dependency in SolrJ in lieu of strengthening Solr's HTTP ClusterState option.
- OpenTelemetry for Metrics instead of DropWizard. Attribute based; supports pushing metrics.
- Segment level filterCache, augmenting or replacing current global strategy
- Limit concurrent HTTP requests / threads to a sane value, not 10k in jetty.xml. Not trivial; don't want to dead-lock at scale.
- schema.xml: Default field types (esp. for non-text) so users needn't define the basics.
Roadmap
Started but not finished
SolrCloud
- Distributed State Updates (vs Overseer)
- Status 2024-04: real-world usage required to push this further. Concerned about Many-replica collection performance; maybe PRS addresses this?
- PRS: should Solr just work this way, removing the non-PRS code path?
- Status 2024-04: Finally, tests randomly choose PRS
- Apache Curator for managing ZK connections –
-
SOLR-16116Getting issue details...
STATUS
- Status 2024-04: PR is close! Need to get this over the finish line.
HTTP API / OpenAPI / JAX-RS
- V2 API (old or new): complete coverage
- OpenAPI / JAX-RS: complete coverage (thus remove old way)
SolrJ / HttpClient
- Remove Apache HttpClient usages within Solr, thus transition to HTTP 2 completely. Maybe will remain as a SolrJ option?
Package Manager
- ? needs work
Solr 9x
Item | Description | Contributors | Theme | Jira |
---|---|---|---|---|
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 SolrJ | SolrJ should be lighter-weight (smaller) for more users; fewer dependencies. Add modules for some dependencies and functionality. | Smiley, Jan, Houston, others | ||
Use JAX-RS | JAX-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.
Item | Description | Contributors | Theme | Jira |
---|---|---|---|---|
First party packages & Slim Solr distribution | Solr should have first party packages, and a slim Solr tarball that doesn't have the first party packages | Ishan, Noble, Jan, et. al. | Lean Solr Core | |
V2 API to be the default | Ref 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, Noble | Lean Solr Core | |
HDFS moved away from Solr-Core | Build a first party package out of HDFS support | Istvan Farkas, Gezapeti | Lean Solr Core | |
Remove Ant support | Tech-debt | |||
Index Lifecycle Management | Automatically move indices between hot, warm and cold phases | Atri Sharma | Feature | |
POJOs instead of loosely typed objects | Start using POJOs/interfaces wherever possible in public APIs where ever possible | Noble Paul | ||
Remove Filter.java from Solr | Filter.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 Smiley | Tech-debt |
Solr 8.9
Last version before 9.0?
Item | Description | Contributors | Theme | Jira |
---|---|---|---|---|
Alternate SolrJ APIs without using NamedList/SimpleOrderedMap/Map | Get rid of concrete classes such as NamedList,SimpleOrderedMap, Map, etc and build our public APIs with interfaces | Noble Paul | Clean-API | |
New Cluster API | Standard 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 versions | Noble Paul | Clean-API | |
New Remote Call API | Remote Calls should have simple constructs and they must be public interfaces. This should be used in all inter-node/client-server communications | Noble Paul | Clean-API | |
Multi-threaded search (SOLR-13350) | Multi threaded search across multiple segments at once, using CollectorManagers | Ishan Chattopadhyaya, Atri Sharma | Optimization | |
SIP-9 | Advanced Query parser and supporting lucene filters | Mike Nibeck (LOC contributor), Gus Heck | Feature |