Go to the admin screen for Cloud/Tree, and then click the node for
aliases.json. To the lower right, you should see something like:
{"collection":{"AdWorksQuery":"AdWorks"}}
Or access the Zookeeper instance, and do a 'get /aliases.json'.
-----Original Message-----
From: Christopher Gross [mailto:[email protected]]
Sent: Thursday, October 17, 2013 2:40 PM
To: solr-user
Subject: Re: Switching indexes
Also, when I make an alias:
http://index1:8080/solr/admin/collections?action=CREATEALIAS&name=test1-alias&collections=test1
I get a pretty useless response:
<response><lst name="responseHeader"><int name="status">0</int><int
name="QTime">0</int></lst></response>
So I'm not sure if it is made. I tried going to:
http://index1:8080/solr/test1-alias/select?q=*:*
but that didn't work. How do I use an alias when it gets made?
-- Chris
On Thu, Oct 17, 2013 at 2:51 PM, Christopher Gross <[email protected]>wrote:
> OK, super confused now.
>
>
> http://index1:8080/solr/admin/cores?action=CREATE&name=test2&collectio
> n=test2&numshards=1&replicationFactor=3
>
> Nets me this:
> <response>
> <lst name="responseHeader">
> <int name="status">400</int>
> <int name="QTime">15007</int>
> </lst>
> <lst name="error">
> <str name="msg">Error CREATEing SolrCore 'test2': Could not find
> configName for collection test2 found:[xxx, xxx, xxxx, xxxxx,
> xxxxxx]</str> <int name="code">400</int> </lst> </response>
>
> For that node (test2), in my solr data directory, I have a folder with
> the conf files and an existing data dir (copied the index from another
> location).
>
> Right now it seems like the only way that I can add in a collection is
> to load the configs into zookeeper, stop tomcat, add it to the
> solr.xml file, and restart tomcat.
>
> Is there a primer that I'm missing for how to do this?
>
> Thanks.
>
>
> -- Chris
>
>
> On Wed, Oct 16, 2013 at 2:59 PM, Christopher Gross <[email protected]>wrote:
>
>> Thanks Shawn, the explanations help bring me forward to the "SolrCloud"
>> mentality.
>>
>> So it sounds like going forward that I should have a more complicated
>> name (ex: coll1-20131015) aliased to coll1, to make it easier to
>> switch in the future.
>>
>> Now, if I already have an index (copied from one location to
>> another), it sounds like I should just remove my existing (bad/old
>> data) coll1, create the "replicated" one (calling it coll1-<date>),
>> then alias coll1 to that one.
>>
>> This type of information would have been awesome to know before I got
>> started, but I can make do with what I've got going now.
>>
>> Thanks again!
>>
>>
>> -- Chris
>>
>>
>> On Wed, Oct 16, 2013 at 2:40 PM, Shawn Heisey <[email protected]> wrote:
>>
>>> On 10/16/2013 11:51 AM, Christopher Gross wrote:
>>> > Ok, so I think I was confusing the terminology (still in a 3.X
>>> > mindset
>>> I
>>> > guess.)
>>> >
>>> > From the Cloud->Tree, I do see that I have "collections" for what
>>> > I was calling "core1", "core2", etc.
>>> >
>>> > So, to redo the above,
>>> > Servers: index1, index2, index3
>>> > Collections: (on each) coll1, coll2 Collection (core?) on index1:
>>> > coll1new
>>> >
>>> > Each Collection has 1 shard (too small to make sharding worthwhile).
>>> >
>>> > So should I run something like this:
>>> >
>>> http://index1:8080/solr/admin/collections?action=CREATEALIAS&name=co
>>> ll1&collections=col11new
>>> >
>>> > Or will I need coll1new to be on each of the index1, index2 and
>>> > index3 instances of Solr?
>>>
>>> I don't think you can create an alias if a collection already exists
>>> with that name - so having a collection named core1 means you
>>> wouldn't want an alias named core1. I could be wrong, but just to
>>> keep things clean, I wouldn't recommend it, even if it's possible.
>>>
>>> That CREATEALIAS command will only work if coll1new shows up in
>>> /collections and shows green on the cloud graph. If it does, and
>>> you're using an alias name that doesn't already exist as a
>>> collection, then you're good.
>>>
>>> Whether coll1new is living on one server, two servers, or all three
>>> servers doesn't matter for CREATEALIAS, or for most other
>>> collection-related topics. Any query or update can be sent to any
>>> server in the cloud and it will be routed to the correct place
>>> according to the clusterstate.
>>>
>>> Where things live and how many replicas there are *does* matter for
>>> a discussion about redundancy. Generally speaking, you're going to
>>> want your shards to have at least two replicas, so that if a Solr
>>> instance goes down, or is taken down for maintenance, your cloud
>>> remains fully operational. In your situation, you probably want
>>> three replicas - so each collection lives on all three servers.
>>>
>>> So my general advice:
>>>
>>> Decide what name you want your application to use, make sure none of
>>> your existing collections are using that name, and set up an alias
>>> with that name pointing to whichever collection is current. Then
>>> change your application configurations or code to point at the alias
>>> instead of directly at the collection.
>>>
>>> When you want to do your reindex, first create a new collection
>>> using the collections API. Index to that new collection. When it's
>>> ready to go, use CREATEALIAS to update the alias, and your
>>> application will start using the new index.
>>>
>>> Thanks,
>>> Shawn
>>>
>>>
>>
>