Solr 9 reorganised the old contribs into modules and removed a few components for good. Telling the two apart is what decides whether an old configuration needs a switch or a rewrite.
Solr 9 reorganised the old contribs into modules: separate jars, in their own directories, switched on by name. A component that became a module is still shipped, still maintained, and still supported. It simply is not on the classpath until you say so. Confusing a move with a deletion is the most common error in Solr 9 upgrade write-ups.
A module is switched on by name in the Solr environment file of the server (SOLR_MODULES), and declared in solrconfig.xml where it needs a request handler.
| Component | Status in Solr 9 | What to do |
|---|---|---|
| XSLTResponseWriter | Shipped, moved to the scripting module | Enable the scripting module, or return JSON and transform client-side |
| Script update processor | Shipped, renamed ScriptUpdateProcessorFactory in scripting | Rename the class and enable the module |
| JWT and Hadoop auth | Shipped, as the jwt-auth and hadoop-auth modules | Enable the module. Short class names still resolve |
| SQL, LTR, langid, HDFS | Shipped, as modules | Enable by name. No configuration changes needed |
| Data Import Handler | Removed from Solr, now a separate community project | Push documents with the update API, or use our Drupal modules, WordPress plugin or the Web Crawler |
| VelocityResponseWriter | Removed, including /browse and wt=velocity | Render results in your own application, or use a hosted search page |
| LRUCache, FastLRUCache, LFUCache | Removed from the jar | Drop the class attribute. CaffeineCache is the only implementation left |
| Cross Data Center Replication | Removed | Index into each environment, or replicate at the infrastructure layer |
| Autoscaling framework | Removed | Use Replica Placement Plugins |
| maxShardsPerNode | Removed | Use a placement strategy instead |
| SimpleFSDirectoryFactory | Removed | Switch to NIOFSDirectoryFactory |
| LegacyBM25SimilarityFactory | Removed | Use BM25SimilarityFactory and retune if scores shift |
| clusterstate.json | No longer read | Migrate the state format while still on Solr 8 |
Solr 9
What Solr 9 removed and what only moved (this page)