Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Solr 10: no Apache HttpClient

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.

Table of Contents

Deprecations

They are listed here separately on this page: Deprecations

Solr 10+ Roadmap

TBD: Ongoing discussion on Overseer vs Distributed State Updates.  Efficient state updates.

Apache Curator; usage TBD.

OpenAPI: complete coverage.

Apache HttpClient no longer included with Solr; not a dependency of SolrJ either (will be an optional choice for some time maybe)

No longer in 10:

  • Apache HttpClient
  • Custom V2 API annotations/framework – use JAX-RS instead. 

Solr 9x

Solr 9 Roadmap

ItemDescriptionContributors
JIRA
ThemeJira
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
Lean Solr CoreAll non essential code moves away from Solr Core, by way of deprecations, removals or packagingIshan, Noble, et. al.
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

Jira
serverASF JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keySOLR-14688

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
Jira
serverASF JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keySOLR-14749

Jira
serverASF JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keySOLR-14613

HDFS moved away from Solr-CoreBuild a first party package out of HDFS supportIstvan Farkas, Gezapeti

...

Lean Solr Core
Remove Ant support



Tech-debt

Jira
serverASF JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyLUCENE-9433

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

Jira
serverASF JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keySOLR-12336

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

Jira
serverASF JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keySOLR-14730

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

Jira
serverASF JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keySOLR-14680

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

Jira
serverASF JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keySOLR-14712

Multi-threaded search (SOLR-13350)

Multi threaded search across multiple segments at once, using CollectorManagers


Ishan Chattopadhyaya, Atri SharmaOptimization

Jira
serverASF JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keySOLR-13350

SIP-9

Advanced Query parser and supporting lucene filters


Mike Nibeck (LOC contributor), Gus HeckFeature

Jira
serverASF JIRA
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keySOLR-14597