lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ken Krugler <>
Subject Re: SolrJ/EmbeddedSolrServer
Date Mon, 28 Jun 2010 03:12:42 GMT
Sort of answering my own question here too...

It seems like I need to get the current core, and use that to  
instantiate a new SolrCore with the same exact config, other than the  

The documentation for SolrCore()'s constructor says:

"If a core with the same name already exists, it will be stopped and  
replaced by this one"

But it's unclear to me whether this will do a graceful swap (like what  
I want) or a hard shutdown of the old core.


-- Ken

On May 22, 2010, at 11:25am, Ryan McKinley wrote:

> accidentally hit send...
> Eache core can have the dataDir set explicitly.
> <core name="core0" instanceDir="core0">
>   <property name="dataDir" value="/data/core0" />
> </core>
> <core name="core1" instanceDir="core1">
>   <property name="dataDir" value="/data/core1" />
> </core>
> If you want to do this with solrj, you would need to manipulate the
> CoreDescriptor objects.

I'm hoping somebody can clarify what's up with the CoreDescriptor  
class, since there's not much documentation.

As far as I can tell, when you create a new SolrCore, it saves off the  
CoreDescriptor you pass in, and does nothing with it.

The constructor for SolrCore also takes a datadir param, so I don't  
see how the CoreDescriptor's dataDir gets used during construction.

And changing the CoreDescriptor's dataDir has no effect, since it's  
essentially a POJO.

So how would one go about changing the dataDir for a core, in a multi- 
core setup?


-- Ken

> On Sat, May 22, 2010 at 2:24 PM, Ryan McKinley <>  
> wrote:
>> Check:
>> Unless I'm missing something, I think you should be able to sort  
>> what you need
>> On Fri, May 21, 2010 at 7:55 PM, Ken Krugler
>> <> wrote:
>>> I've got a situation where my data directory (a) needs to live  
>>> elsewhere
>>> besides inside of Solr home, (b) moves to a different location  
>>> when updating
>>> indexes, and (c) setting up a symlink from <solr_home>/data isn't  
>>> a great
>>> option.
>>> So what's the best approach to making this work with SolrJ? The  
>>> low-level
>>> solution seems to be
>>> - create my own SolrCore instance, where I specify the data  
>>> directory
>>> - use that to update the CoreContainer
>>> - create a new EmbeddedSolrServer
>>> But recreating the EmbeddedSolrServer with each index update feels  
>>> wrong,
>>> and I'd like to avoid mucking around with low-level SolrCore  
>>> instantiation.
>>> Any other approaches?
>>> Thanks,
>>> -- Ken
>>> --------------------------------------------
>>> Ken Krugler
>>> +1 530-210-6378
>>> e l a s t i c   w e b   m i n i n g

Ken Krugler
+1 530-210-6378
e l a s t i c   w e b   m i n i n g

View raw message