lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Miller <markrmil...@gmail.com>
Subject Re: Solrj 4.2 - CloudSolrServer aliases are not loaded
Date Tue, 02 Apr 2013 17:31:51 GMT
Answers inline:

On Apr 2, 2013, at 11:45 AM, Elodie Sannier <elodie.sannier@kelkoo.fr> wrote:

> Hello,
> 
> I am using the new collection alias feature, and it seems
> CloudSolrServer class (solrj 4.2.0) does not allow to use it, either for
> update or select.
> 
> When I'm requesting the CloudSolrServer with a collection alias name, I
> have the error:
> org.apache.solr.common.SolrException: Collection not found:
> aliasedCollection
> 
> The collection alias cannot be found because, in
> CloudSolrServer#getCollectionList (line 319) method, the alias variable
> is always empty.
> 
> When I'm requesting the CloudSolrServer, the connect method is called
> and it calls the ZkStateReader#createClusterStateWatchersAndUpdate method.
> In the ZkStateReader#createClusterStateWatchersAndUpdate method, the
> aliases are not loaded.
> 
> line 295, the data from /clusterstate.json are loaded :
> ClusterState clusterState = ClusterState.load(zkClient, liveNodeSet);
> this.clusterState = clusterState;
> 
> Should we have the same data loading from /aliases.json, in order to
> fill the aliases field ?
> line 299, a Watcher for aliases is created but does not seem used.

The Watcher is used. It updates the Aliases if they changed - there is some lag time though.
There is some work that tries to avoid the lag in the update being a problem, but I'm guessing
somehow it's not covering your case. 

It wouldn't hurt to add the updateAliases call automatically on ZkStateReader init. If the
watcher was indeed not being used, that would not solve things though - the client still needs
to be able to detect alias additions and changes.

Your best bet is to file a JIRA issue so we can work on a test that mimics what you are seeing.

- Mark

> 
> 
> As a workaround to avoid the error, I have to force the aliases loading
> at my application start and when the aliases are updated:
> CloudSolrServer solrServer = new CloudSolrServer("localhost:2181");
> solrServer.setDefaultCollection("aliasedCollection");
> solrServer.connect();
> solrServer.getZkStateReader().updateAliases();
> 
> Is there a better way to use collection aliases with solrj ?
> 
> Elodie Sannier
> 
> Kelkoo SAS
> Société par Actions Simplifiée
> Au capital de € 4.168.964,30
> Siège social : 8, rue du Sentier 75002 Paris
> 425 093 069 RCS Paris
> 
> Ce message et les pièces jointes sont confidentiels et établis à l'attention exclusive
de leurs destinataires. Si vous n'êtes pas le destinataire de ce message, merci de le détruire
et d'en avertir l'expéditeur.


Mime
View raw message