Garth, I think I get what you're saying, but I want to make sure.
I have 3 servers (index1, index2, index3), with Solr living on port 8080. Each of those has 3 cores loaded with data: core1 (old version) core1new (new version) core2 (unrelated to core1) If I wanted to make it so that queries to core1 are really going to core1new, I'd run: http://index1:8080/solr/admin/cores?action=CREATEALIAS&name=core1&collections=core1new&shard=shard1 Correct? -- Chris On Wed, Oct 16, 2013 at 9:02 AM, Garth Grimm < garthgr...@averyranchconsulting.com> wrote: > The alias applies to the entire cloud, not a single core. > > So you'd have your indexing application point to a "collection alias" > named 'index'. And that alias would point to core1. > You'd have your query applications point to a "collection alias" named > 'query', and that would point to core1, as well. > > Then use the Collection API to create core1new across the entire cloud. > Then update the 'index' alias to point to core1new. Feed documents in, > run warm-up scripts, run smoke tests, etc., etc. > When you're ready, point the 'query' alias to core1new. > > You're now running completely on core1new, and can use the Collection API > to delete core1 from the cloud. Or keep it around as a backup to which you > can restore simply by changing 'query' alias. > > -----Original Message----- > From: Christopher Gross [mailto:cogr...@gmail.com] > Sent: Wednesday, October 16, 2013 7:05 AM > To: solr-user > Subject: Re: Switching indexes > > Shawn, > > It all makes sense, I'm just dealing with production servers here so I'm > trying to be very careful (shutting down one node at a time is OK, just > don't want to do something catastrophic.) > > OK, so I should use that aliasing feature. > > On index1 I have: > core1 > core1new > core2 > > On index2 and index3 I have: > core1 > core2 > > If I do the "alias" command on index1 and have "core1" alias "core1new": > 1) Will that then get rid of the existing core1 and have "core1new" data > be used for queries? > 2) Will that change make core1 instances on index2 and index3 update to > have "core1new" data? > > Thanks again! > > > > -- Chris > > > On Tue, Oct 15, 2013 at 7:30 PM, Shawn Heisey <s...@elyograg.org> wrote: > > > On 10/15/2013 2:17 PM, Christopher Gross wrote: > > > >> I have 3 Solr nodes (and 5 ZK nodes). > >> > >> For #1, would I have to do that on all of them? > >> For #2, I'm not getting the auto-replication between node 1 and nodes > >> 2 & > >> 3 > >> for my new index. > >> > >> I have 2 indexes -- just call them "index" and "indexbk" (bk being > >> the backup containing the full data set) up and running on one node. > >> If I were to do a swap (via the Core Admin page), would that push the > >> changes for indexbk over to the other two nodes? Would I need to do > >> that switch on the leader, or could that be done on one of the other > nodes? > >> > > > > For #1, I don't know how you want to handle your sharding and/or > > replication. I would assume that you probably have numShards=1 and > > replicationFactor=3, but I could be wrong. At any rate, where the > > collection lives is an implementation detail that's up to you. > > SolrCloud keeps track of all your collections, whether they are on one > > server or all servers. Typically you can send requests (queries, API > > calls, etc) that deal with entire collections to any node in your > > cluster and they will be handled correctly. If you need to deal with > > a specific core, that call needs to go to the correct node. > > > > For #2, when you create a core and want it to be a replica of > > something that already exists, you need to give it a name that's not > > in use on your cluster, such as index2_shard1_replica3. You also tell > > it what collection it's part of, which for my example, would probably > > be index2. Then you tell it what shard it will contain. That will be > shard1, shard2, etc. > > Here's an example of a CREATE call: > > > > http://server:port/solr/admin/**cores?action=CREATE&name=** > > index2_shard1_replica3&**collection=index2&shard=shard1 > > > > For the rest of your message: Core swapping and SolrCloud do NOT get > > along. If you are using SolrCloud, CoreAdmin features like that need > > to disappear from your toolset. Attempting a core swap will make bad > > things > > (tm) happen. > > > > Collection aliasing is the way in SolrCloud that you can now do what > > used to be done with swapping. You have collections named index1, > > index2, index3, etc ... and you keep an alias called just "index" that > > points to one of those other collections, so that you don't have to > > change your application - you just repoint the alias and all the > > application queries going to "index" will go to the correct place. > > > > I hope I haven't made things more confusing for you! > > > > Thanks, > > Shawn > > > > >