To whom it may concern:
I had (at least) two issues
1) setting CoreDescriptor property/ies
Properties coreProps = new Properties();
coreProps.setProperty( CoreDescriptor.CORE_CONFIGSET, "configset" );
CoreDescriptor cd = new CoreDescriptor( container, "test", pathToSolrCores +
"/test", coreProps );
2) solr.xml
<str name="configSetBaseDir">${configSetBaseDir:c:/tmp/solr/configsets}</str>
-----Ursprüngliche Nachricht-----
Von: Clemens Wyss DEV [mailto:[email protected]]
Gesendet: Dienstag, 25. November 2014 10:36
An: [email protected]
Betreff: AW: CoreContainer : create new cores reusing/sharing solrconfig.xml
and schema.xml
Even if I set CORE_CONFIGSET I get
org.apache.solr.common.SolrException: Unable to create core [test]
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:507)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:466)
at ch.mysign.indexing.solr.SolrTest.createANewCore(SolrTest.java:123)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.lang.reflect.Method.invoke(Method.java:483)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.lang.reflect.Method.invoke(Method.java:483)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: org.apache.solr.common.SolrException: Could not load conf for core
test: Error loading solr config from C:/tmp/solr/cores/test\conf\solrconfig.xml
at
org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:66)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:489)
... 12 more
Caused by: org.apache.solr.common.SolrException: Error loading solr config from
C:/tmp/solr/cores/test\conf\solrconfig.xml
at
org.apache.solr.core.SolrConfig.readFromResourceLoader(SolrConfig.java:154)
at
org.apache.solr.core.ConfigSetService.createSolrConfig(ConfigSetService.java:80)
at
org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:61)
... 13 more
Caused by: java.io.IOException: Can't find resource 'solrconfig.xml' in
classpath or 'C:\tmp\solr\cores\test\conf'
at
org.apache.solr.core.SolrResourceLoader.openResource(SolrResourceLoader.java:362)
at
org.apache.solr.core.SolrResourceLoader.openConfig(SolrResourceLoader.java:308)
at org.apache.solr.core.Config.<init>(Config.java:117)
at org.apache.solr.core.Config.<init>(Config.java:87)
at org.apache.solr.core.SolrConfig.<init>(SolrConfig.java:167)
at
org.apache.solr.core.SolrConfig.readFromResourceLoader(SolrConfig.java:145)
... 15 more
My unittest looks alike:
String pathToSolr = "C:/tmp/solr/";
String pathToSolrCores = pathToSolr + "cores"; File solrCoresDir = new File(
pathToSolrCores ); if ( solrCoresDir.exists() ) {
FileUtil.deleteDirectory( solrCoresDir ); } FileUtil.createDirectories(
pathToSolrCores ); CoreContainer container = CoreContainer.createAndLoad(
pathToSolrCores, new File( pathToSolr + "solr.xml" ) ); // String
coreRootDirectory = container.getCoreRootDirectory(); Collection<String>
coreNames = container.getAllCoreNames(); Assert.assertTrue( coreNames.isEmpty()
); CoreDescriptor cd = new CoreDescriptor( container, "test", pathToSolrCores +
"/test" ); cd.getSubstitutableProperties().setProperty( cd.CORE_CONFIGSET,
"configset" ); // I also tried cd.getSubstitutableProperties().setProperty(
cd.CORE_CONFIGSET, pathToSolr + "configsets/configset" ); // SolrCore core =
container.create( cd ); coreNames = container.getAllCoreNames();
Assert.assertFalse( coreNames.isEmpty() );
The structure of /tmp/solr looks like this:
C:\TMP\SOLR
├───configsets
│ └───configset
│ └───conf
| └───schema.xml
| └───solrconfig.xml
└───cores
└───solr.xml
solr.xml:
<solr>
<shareSchema>true</shareSchema>
<configSetBaseDir>c:/tmp/solr/configsets</configSetBaseDir>
<solrcloud>
...
</solrcloud>
<shardHandlerFactory name="shardHandlerFactory"
...
</shardHandlerFactory>
</solr>
-----Ursprüngliche Nachricht-----
Von: Alexandre Rafalovitch [mailto:[email protected]]
Gesendet: Montag, 24. November 2014 16:49
An: solr-user
Betreff: Re: CoreContainer : create new cores reusing/sharing solrconfig.xml
and schema.xml
I haven't done this myself, but it is defined as a constant in the
CoreDescriptor:
http://www.solr-start.com/javadoc/solr-lucene/org/apache/solr/core/CoreDescriptor.html#CORE_CONFIGSET
You could also look at the tests and see whether it is used.
Regards,
Alex.
Personal: http://www.outerthoughts.com/ and @arafalov Solr resources and
newsletter: http://www.solr-start.com/ and @solrstart Solr popularizers
community: https://www.linkedin.com/groups?gid=6713853
On 24 November 2014 at 10:43, Clemens Wyss DEV <[email protected]> wrote:
> Thanks fort he quick reply.
> But how do I hand in the configSet to use. I guess through the CoreDescriptor?
>
> -----Ursprüngliche Nachricht-----
> Von: Alexandre Rafalovitch [mailto:[email protected]]
> Gesendet: Montag, 24. November 2014 16:27
> An: solr-user
> Betreff: Re: CoreContainer : create new cores reusing/sharing
> solrconfig.xml and schema.xml
>
> Have you tried Configsets:
> https://cwiki.apache.org/confluence/display/solr/Config+Sets ?
>
> Regards,
> Alex.
> Personal: http://www.outerthoughts.com/ and @arafalov Solr resources
> and newsletter: http://www.solr-start.com/ and @solrstart Solr
> popularizers community: https://www.linkedin.com/groups?gid=6713853
>
>
> On 24 November 2014 at 10:14, Clemens Wyss DEV <[email protected]> wrote:
>> Given the following directory/file structure
>>
>> .../solrhome
>> .../solrhome/solr.xml
>> .../solrhome/config/
>> .../solrhome/config/schema.xml
>> .../solrhome/config/solrconfig.xml
>> .../solrhome/cores
>>
>> How can I programmatically (CoreContainer) create a new core below
>> .../solrhome/cores that makes use of solrconfig.xml and schema.xml?
>> The new core should use the config files in .../solrhome/config/
>>
>> Thx
>> Clemens