2017-05-15 4 views
0

J'utilise Java client pour Riak KV 2.1.1. Après avoir créé l'index et l'avoir appliqué à l'espace de noms, j'obtiens la méthode non trouvée, même si je suis la documentation fournie sur le website. Quelle est la solution pour cela?Client Java Riak KV 2.1.1: Aucune méthode appropriée trouvée pour Client.execute()

Merci.

Veuillez voir le code et l'erreur complète ci-dessous.

 YokozunaIndex famousIndex = new YokozunaIndex("famous", "_yz_default"); 
     StoreIndex storeIndex = new StoreIndex.Builder(famousIndex) 
       .build(); 
     client.execute(storeIndex);  
     Namespace streets=new Namespace("streets"); 
     StoreBucketPropsOperation storePropsOp = new StoreBucketPropsOperation.Builder(streets) 
       .withSearchIndex("famous") 
       .build(); 
     client.execute(storePropsOp); // this is where I am getting error 

Error Image

Répondre

1

Ceci est un bug de documentation. RiakClient.execute() accepte une instance de RiakCommand, tandis que StoreBucketPropsOperation est une API de niveau inférieur.

Au lieu de cela, utilisez la commande StoreBucketProperties comme suit:

StoreBucketProperties storePropsCommand = new StoreBucketProperties.Builder(streets) 
      .withSearchIndex("famous") 
      .build(); 
    client.execute(storePropsCommand); 
+0

Ouais j'ai essayé avant de poster la question, il ne vous donnera pas l'erreur, mais ma requête de recherche ne fonctionne pas après l'application de l'indice. C'est une simple valeur clé (chaîne, chaîne). ça donne une erreur. "La requête ne peut pas être terminée" .--------------------------------- SearchOperation searchOp = new SearchOperation .Builder (BinaryValue.create ("famous"), "Ma maison *") .build(); cluster.execute (searchOp); Liste >> results = searchOp.get(). GetAllResults(); – Ateeq

+0

Ce n'est pas ce que vous avez demandé. En fait, votre question initiale n'est même pas liée à l'interrogation, mais à l'association d'un index avec un bucket. Comme je l'ai expliqué, vous devriez utiliser l'API de commande, qui fonctionne de la même manière que l'API d'opération. Si vous avez un problème différent, posez une question différente. – vempo