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-16116 - Getting 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

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

SOLR-14688 - Getting issue details... STATUS

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
SOLR-14749 - Getting issue details... STATUS

SOLR-14613 - Getting issue details... STATUS

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



Tech-debt

LUCENE-9433 - Getting issue details... STATUS

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-12336 - Getting issue details... STATUS

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

SOLR-14730 - Getting issue details... STATUS

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

SOLR-14680 - Getting issue details... STATUS

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

SOLR-14712 - Getting issue details... STATUS

Multi-threaded search (SOLR-13350)

Multi threaded search across multiple segments at once, using CollectorManagers


Ishan Chattopadhyaya, Atri SharmaOptimization

SOLR-13350 - Getting issue details... STATUS

SIP-9

Advanced Query parser and supporting lucene filters


Mike Nibeck (LOC contributor), Gus HeckFeature

SOLR-14597 - Getting issue details... STATUS







  • No labels