2017-05-15 5 views
0

JavaクライアントをRiak KV 2.1.1に使用しています。インデックスを作成して名前空間に適用した後、websiteに記載されているドキュメントに従っているにもかかわらず、適切なメソッドが見つかりませんでした。 これはどのような解決策ですか?Riak KV 2.1.1 Javaクライアント:Client.execute()の適切なメソッドが見つかりません

ありがとうございました。

以下のコードと完全なエラーをご覧ください。

 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

答えて

1

これはドキュメントのバグです。 RiakClient.execute()RiakCommandのインスタンスを受け取り、StoreBucketPropsOperationは下位レベルのAPIです。

は代わりに、次のようにStoreBucketPropertiesのコマンドを使用します。

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

をうん、私は、質問を投稿する前に、それはあなたにエラーを与えないことを試みたが、私の検索クエリがインデックスを適用した後に動作しません。その単純なキー値(文字列、文字列)バケット。それはエラーを引き起こす可能性があります。 「クエリを完了できません」。 SearchOperation searchOp = new SearchOperation .Builder (BinaryValue.create( "有名")、 "My home *") 。ビルド(); cluster.execute(searchOp); List >> results = searchOp.get()。getAllResults(); – Ateeq

+0

これはあなたが尋ねたものではありません。実際には、元の質問はクエリに関連するものではなく、インデックスをバケットに関連付けることに関連しています。上で説明したように、操作APIと同じように機能するコマンドAPIを使用する必要があります。別の問題がある場合は、別の質問を投稿してください。 – vempo

関連する問題