The Solr PMC is pleased to announce the release of Apache Solr 9.0.0.
Solr is the popular, blazing fast, open source NoSQL search platform from the Apache Solr project. Its major features include powerful full-text search, hit highlighting, faceted search, dynamic clustering, database integration, rich document handling, and geospatial search. Solr is highly scalable, providing fault tolerant distributed search and indexing, and powers the search and navigation features of many of the world's largest internet sites.
Solr 9.0.0 is available for immediate download at:
https://solr.apache.org/downloads.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 lets you authenticate with x509 client certificates.
- Upgrade to Zookeeper 3.7, allowing for TLS protected ZK communication.
- All request handlers support security permissions for authorization.
- Solr now runs with the Java security manager enabled by default.
- Solr embedded zookeeper only binds to localhost by default.
- A lot of dependency updates make Solr much more secure.
Stability and Scalability
- Rate limiting 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.
- Support for distributed processing of cluster state updates and collection API calls without relying on the Overseer.
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 creation is now a part of the Apache Solr Github repo.
- 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 a local image that is functionally identical to the official one.
Deprecations and Removals
- The Data Import Handler (DIH) is an independent project now; it is no longer a part of Solr.
- No more support for clusterstate.json and MIGRATESTATE API has been removed. If your collections use clusterstate.json, please refer to the Upgrade Notes.
- Auto scaling framework has been removed. Please refer to the new Replica Placement Plugins for alternate options.
- LegacyBM25SimilarityFactory has been removed.
- VelocityResponseWriter is an independent project now; it is no longer a part of Solr. This encompasses all previously included /browse and wt=velocity examples.
- Legacy SolrCache implementations (LRUCache, LFUCache, FastLRUCache) have been removed. Users should modify their existing configurations to use CaffeineCache instead.
- Cross Data Center Replication has been removed.
- 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.
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.
- 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.
Please read CHANGES.txt for a full list of new features, changes and bugfixes: