Apache Solr 9.0 was released on May 12, 2022. This release is the first major release since Solr split out from the Apache Lucene project to become its own top level Apache project again (the two had joined into a single project back in 2012). This split has allowed Apache Solr to focus on cleaning up tech debt and release on a separate cadence from Lucene.
Solr 9 is an important release not so much because of the new features released, as for the core technical debt that has been solved, and the work to set up Solr for the future.
Built with Gradle for Java 11
Apache Solr 9.0 is based on Apache Lucene 9.0 and includes a bunch of dependency updates. The minimum Java version has been bumped to Java 11 (and the Docker version uses Java 17). Additionally, Solr is now built with Gradle which simplifies dependency management for the project. Many of the dependencies have been upgraded or simplified from the old Apache Ant build process. This should help companies who are increasing security scanning since many old dependencies, some of which would trigger potential warnings, have been addressed.
Modules make Solr more lightweight
Historically the Apache Solr project maintained some “contributions” that were released as part of Solr (in the /contrib directory), for example the Learning to Rank functionality. These contributions expanded the functionality of Solr, but also ballooned up the size of Solr, and increased the security footprint.
Along the lines of cleaning up tech debt, Apache Solr moved many core dependencies to new Solr modules. These new modules include SQL, HDFS, Hadoop Authentication, and others. This enables users to opt into only the parts of Solr they actually want to use and drastically reduces the number of core dependencies that get pulled in. Many deprecated items such as the Data Import Handler (DIH) have been removed as well to slim down the distribution.
New features: vectors, SQL, rate limiting and logs
Apache Solr has also added some new features. Vector search makes its first appearance through the DenseVectorField fieldType and K-Nearest-Neighbor (KNN) Query Parser. There is a new SQL query UI in the Solr Admin UI and the Admin UI can now be disabled through a system property if it isn’t needed.
Several improvements have been made to operations related items like rate limiting and ability to specify node roles. Solr has improved logging by enabling asynchronous logging by default. Furthermore, the Jetty request log is enabled by default to give Solr administrators more insight into the requests being made to Solr itself.
Docker image now official
Enabled by the new Gradle build system, the Apache Solr project has also taken over building and publishing the official Solr Docker image. This is now tested as part of the release and included in the build process. It is possible for users to build the Solr Docker image locally to get the same output as what is published to Docker Hub.
This blog post only scratches the surface of the Apache Solr 9.0 release so try it out and see for yourself! Be sure to check out the release notes and major changes to see all the details. Anshum Gupta gave a great talk on Solr 9 at Berlin Buzzwords and there are blogs from Pure Insights and Solr.pl to read.
Training & Tools updated
OSC’s Think Like a Relevance Engineer training for Solr has been updated for version 9 and our relevance engineering tools (Splainer, Quepid) work seamlessly with the new version.
Remember to talk to us if you need help with your Solr project!