Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Cleanup and add some more information where needed.

...

https://solr.apache.org/docs/9_0_0/changes/Changes.html

This is a major-version release with breaking changes. The highlights below is not the full list. Please consult the "Solr Upgrade Notes" when planning an upgrade:

https://solr.apache.org/guide/solr/9_0/upgrade-notes/solr-upgrade-notes.html

Solr 9.0.0 Release Highlights:

  • Minimum Java version supported: Java 11

  • Powered by Lucene 9.0, with numerous small and large improvements, such as smaller index footprint.

Querying and Indexing

  • Dense Vector "Neural" Search through DenseVectorField fieldType and K-Nearest-Neighbor (KNN) Query Parser.
  • Admin UI support for SQL Querying.
  • New snowball stemmers: Hindi, Indonesian, Nepali, Serbian, Tamil, and Yiddish.
  • New NorwegianNormalizationFilter.

Security

  • Certificate Authentication Plugin : Supports loading the certificate subject via a user principal into the AuthorizationContext and that enables end-to-end use of x509 client certificates for Authentication and Authorization.
  • Improved security when using PKI Authentication plugin.
  • Upgrade to ZK Zookeeper 3.7 allows , allowing for TLS communication between Solr and ZookeeperJetty Request log enabled by defaultprotected ZK communication.
  • All request handlers support security permissions for access.
  • Ability to disable admin UI through a system property.
  • The property blockUnknown in the BasicAuthPlugin and the JWTAuthPlugin now defaults to true . This change is backward incompatible. If you need the pre-9.0 default behavior, you need to explicitly set blockUnknown:false in security.json.
  • The allow-list defining allowed URLs for the shards parameter is not in the shardHandler configuration anymore. It is defined by the allowUrls top-level property of the solr.xml file. For more information, see Format of solr.allowUrls documentation
  • instead of false.
  • Solr now runs with the java Java security manager enabled by default. Administrators that need to run Solr with Hadoop will Hadoop users may need to disable this feature by setting .
  • Solr embedded zookeeper only binds to localhost by default. This embedded zookeeper should not be used in production. If you rely upon the previous behavior, then you can change the clientPortAddress in solr/server/solr/zoo.cfg

Stability

  • See Upgrade Notes for how to obtain old behavior.
  • Dependency updates - A lot of dependency updates make Solr overall much more stable and secure.

Stability and Scalability

  • Rate limiting privides provides a way to throttle update and search requests based on usage metrics.
  • Task management interface allows declaring tasks as cancellable and trackable.

...

  • Ability to specify node roles in Solr. This release supports 'Overseer' and 'Data' roles out of the box.
  • New API for pluggable replica assignment implementations that replaces the auto-scaling framework.
  • Support Distributed Overseer (optional) allows for distributed processing of clsuter cluster state updates and Collection and Config API call processing collection API calls without relying on the Overseer.

Others

  • Admin UI support for SQL Querying
  • HDFS code is now an independent module
  • Metrics handler only depends on SolrJ instead of core and has its own log4j2.xml now so it doesn’t share Solr’s logging config

Build

  • Independent build and release
  • Build system switched to gradle, no longer uses ant

Docker

Build and Docker

  • Solr is now built and released independently of Apache Lucene (separate Apache projects).
  • Build system switched to Gradle from Ant + Ivy.
  • Docker image Image creation is now a part of the Apache Solr Github repo.
  • Solr Docker image documentation is now a part of the reference guide.
  • Official Docker image upgraded to use JDK17 (by Eclipse Temurin) and ability to create functionally identical local image

Deprecations and Removal

  • a local image that is functionally identical to the official one.

Other

  • Contrib modules are now just "modules". You can easily enable module(s) through environment variable SOLR_MODULES.
  • Features lifted out as separate modules are: HDFS, Hadoop-Auth, SQL, Scripting, and JWT-Auth.
  • The "dist" folder in the release is gone. Module jars are now inside respective module's lib/ folder.
  • Metrics handler only depends on SolrJ instead of core and has its own log4j2.xml now so it doesn’t share Solr’s logging config.
  • SolrJ class CloudSolrClient now supports HTTP2. It has a new Builder. See CloudLegacySolrClient for the 8.x version of this class
  • Jetty Request log is now enabled by default, i.e. logging every request.

Deprecations and Removals

  • The Data Import Handler (DIH) is an independent project now; it is no longer a part of Solr.
  • Data Import Handler has been removed from Solr
  • Legacy cloud mode is no longer supported
  • No more support for clusterstate.json and MIGRATESTATE API has been removed. If your collections use clusterstate.json, please refer to the upgrade notesUpgrade Notes.
  • Auto scaling framework has been removed. Please refer to replica placement plugins for alternate options.
  • LegacyBM25SimilarityFactory has been removed.
  • VelocityResponseWriter has been removed from is an independent project now; it is no longer a part of Solr. This encompasses all previous previously included /browse and wt=velocity examples.
  • Legacy SolrCache implementations (LRUCache, LFUCache, FastLRUCache) have been removed. Users have to should modify their existing configurations to use CaffeineCache instead.
  • Cross Data Center Replication has been removed in this released
  • SolrJ clients like HttpSolrClient and LBHttpSolrClient that lacked HTTP2 support have been deprecated. The old CloudSolrClient has been renamed as CloudLegacySolrClient and deprecated.
  • SimpleFSDirectoryFactory is removed in favor of NIOFSDirectoryFactory.