Solr Modules are addon Solr plugins that are not part of solr-core, but officially maintained by the Solr project. They provide well-defined features such as the "extracting" module which lets users index rich text documents with Apache Tika. A single module can contain multiple Plugins. Modules were earlier known as "contribs".
Each module produces a separate
.jar file in the build, packaged in the module’s
All additional dependencies required by the module, and not provided by Solr core, are also packaged there.
This helps keep the main core of Solr small and lean.
The easiest way to enable a module is to list the modules you intend to use either in the
solr.modules or in the environment variable
SOLR_MODULES (e.g. in
solr.in.cmd). You can also add a
<str name="modules"> tag to your
solr.xml. The expected value is a comma separated list
of module names, e.g.
SOLR_MODULES=extracting,ltr. This will make the functionality of configured Modules
available to every collection in Solr.
You can also specify the modules to include when using the Solr CLI to start Solr:
bin/solr start -e techproducts -Dsolr.modules=scripting
If you only wish to enable a module for certain collections, you may add
<lib> tags to
solrconfig.xml in applicable configset(s).
as explained in Lib Directories.
Collection-level plugins will work if the module is enabled either per collection (
<lib>) or for the whole Solr node.
Node-level plugins such as those specified in
solr.xml will not work when using the
<lib> option in
solrconfig.xml because configsets configure collections, not the node. They must be enabled for the entire Solr node, as described above.
Some modules may have been made available as packages for the Package Manager, check by listing available packages.