Does that persist even after you restart Solr on the target cluster?

And that clears up one bit of confusion I had, I didn't know how you
were having each shard on the target cluster use a different master URL
given they all use the same solrconfig file. I was guessing some magic with
system variables, but it turns out you were waaaay ahead of me and
not configuring the replication in solrconfig at all.

But no, I know of no API level command that works to do what you're asking.
I also don't know where that data is persisted, I'm afraid you'll have to go
code-diving for all the help I can be....

Using fetchindex this way in SolrCloud is something of an edge case. It'll
probably be around forever since replication is used as a fall-back when
a replica syncs, but there'll be some bits like this hanging around I'd guess.

Best,
Erick

On Thu, Oct 19, 2017 at 11:55 PM, Hendrik Haddorp
<hendrik.hadd...@gmx.net> wrote:
> Hi Erick,
>
> that is actually the call I'm using :-)
> If you invoke
> http://solr_target_machine:port/solr/core/replication?command=details after
> that you can see the replication status. But even after a Solr restart the
> call still shows the replication relation and I would like to remove this so
> that the core looks "normal" again.
>
> regards,
> Hendrik
>
> On 20.10.2017 02:31, Erick Erickson wrote:
>>
>> Little known trick:
>>
>> The fetchIndex replication API call can take any parameter you specify
>> in your config. So you don't have to configure replication at all on
>> your target collection, just issue the replication API command with
>> masterUrl, something like:
>>
>>
>> http://solr_target_machine:port/solr/core/replication?command=fetchindex&masterUrl=http://solr_source_machine:port/solr/core
>>
>> NOTE, "core" above will be something like collection1_shard1_replica1....
>>
>> During the fetchindex, you won't be able to search on the target
>> collection although the source will be searchable.
>>
>> Now, all that said this is just copying stuff. So let's say you've
>> indexed to your source cluster and set up your target cluster (but
>> don't index anything to the target or do the replication etc). Now if
>> you shut down the target cluster and just copy the entire data dir
>> from each source replica to each target replica then start all the
>> target Solr instances up you'll be fine.
>>
>> Best,
>> Erick
>>
>> On Thu, Oct 19, 2017 at 1:33 PM, Hendrik Haddorp
>> <hendrik.hadd...@gmx.net> wrote:
>>>
>>> Hi,
>>>
>>> I want to transfer a Solr collection from one SolrCloud to another one.
>>> For
>>> that I create a collection in the target cloud using the same config set
>>> as
>>> on the source cloud but with a replication factor of one. After that I'm
>>> using the Solr core API with a "replication?command=fetchindex" command
>>> to
>>> transfer the data. In the last step I'm increasing the replication
>>> factor.
>>> This seems to work fine so far. When I invoke
>>> "replication?command=details"
>>> I can see my replication setup and check if the replication is done. In
>>> the
>>> end I would like to remove this relation again but there does not seem to
>>> be
>>> an API call for that. Given that the replication should be a one time
>>> replication according to the API on
>>> https://lucene.apache.org/solr/guide/6_6/index-replication.html this
>>> should
>>> not be a big problem. It just does not look clean to me to leave this in
>>> the
>>> system. Is there anything I'm missing?
>>>
>>> regards,
>>> Hendrik
>
>

Reply via email to