It would be useful to push snapshots as they are created from the master to the slaves. I prefer this approach to constant polling by slaves. Partially because the timing could be off on the slave servers, the data is replicated, and the user sees different snapshots?
Something like a virtual 2 phase commit, where phase 1 is replicate the new snapshots and load the searcher, phase two is all slaves synchronously expose the new searcher. I'm also wondering how we'll handle synchronous slaves with near realtime search.