On 1/2/2017 7:07 PM, Bob Cook wrote:
> I've create some custom plugin that I put in a lib directory at the
> same level as the conf directory for the core which is loaded via the
> lib directives in solrconfig.xml /solrdata/CoreName/conf
> /solrdata/CoreName/lib /solrdata/CoreName/core.properties This works
> great when using Solr. But when I use SolrCloud, I get an error when
> creating the collection as it can't find the plugin libraries. Now
> that Zookeeper is managing the conf directory (configuration files,
> i.e. solrconfig.xml), what is the relative path in solrconfig.xml
> pointing to? 

I actually do not know what the path for lib directives is relative to
when running SolrCloud.  Most things in a core config are relative to
the location of the config file itself, but in this case, the config
file is not on the filesystem at all, it's in zookeeper, and I don't
think Solr can use jars in zookeeper.  Also there's a size limit of one
megabyte for items in zookeeper without special config, and increasing
the limit is not recommended.

> how do I specify the relative path, or do I need to specify an
> absolute path? Or do I need to put the libraries somewhere else? 

My recommendation:  Do not use "lib" directives, or any other kind of
jar-loading related config including sharedLib, at all.  On each
machine, create a "lib" directory in the solr home and place all your
extra jars there.  The solr home is where solr.xml lives and where the
core directories normally go.  All jars in this lib directory will be
loaded exactly once at startup and made available to all cores, without
*any* config.

You can also create a lib directory inside the core's instanceDir, which
is also automatically loaded by Solr without config, but this presents a
bit of a catch-22 problem where you can't create the lib directory until
the core exists, but can't get the core to work properly until the lib
directory exists.

There is a feature in SolrCloud for loading jars from a distributed
collection.  It doesn't work everywhere in Solr, but classes specified
in solrconfig.xml, for things like request handlers, should work.

https://cwiki.apache.org/confluence/display/solr/Blob+Store+API

There is an enhancement request filed to allow the schema to use jars
from the blob store, but it hasn't received much attention yet:

https://issues.apache.org/jira/browse/SOLR-9175

Thanks,
Shawn

Reply via email to