lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ken Krugler <kkrugler_li...@transpac.com>
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  
dataDir.

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.

Thanks,

-- 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?

Thanks,

-- Ken

> On Sat, May 22, 2010 at 2:24 PM, Ryan McKinley <ryantxu@gmail.com>  
> wrote:
>> Check:
>> http://wiki.apache.org/solr/CoreAdmin
>>
>> 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
>> <kkrugler_lists@transpac.com> 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
>>> http://bixolabs.com
>>> e l a s t i c   w e b   m i n i n g
>>>
>>>
>>>
>>>
>>>
>>

--------------------------------------------
Ken Krugler
+1 530-210-6378
http://bixolabs.com
e l a s t i c   w e b   m i n i n g





Mime
View raw message