Riak KV 2.1.1 Java-клиент: не найден подходящий метод для Client.execute()

Я использую Java-клиент для Riak KV 2.1.1. После создания индекса и применения его к пространству имен я получаю сообщение об ошибке «Нет подходящего метода», хотя я следую документации, приведенной на веб-сайт. Каково решение для этого?

Спасибо.

Пожалуйста, смотрите код и полную ошибку ниже.

        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

Изображение с ошибкой


person Ateeq    schedule 15.05.2017    source источник


Ответы (1)


Это ошибка документации. RiakClient.execute() принимает экземпляр RiakCommand, а StoreBucketPropsOperation — это API более низкого уровня.

Вместо этого используйте команду StoreBucketProperties следующим образом:

    StoreBucketProperties storePropsCommand = new StoreBucketProperties.Builder(streets)
            .withSearchIndex("famous")
            .build();
    client.execute(storePropsCommand);
person vempo    schedule 22.05.2017
comment
Да, я пробовал это перед публикацией вопроса, это не выдаст вам ошибку, но мой поисковый запрос не работает после применения индекса. Это простое ведро значения ключа (строка, строка). это дает ошибку. Запрос не может быть завершен.-------------------------------- SearchOperation searchOp = new SearchOperation .Builder(BinaryValue.create( известный), Мой дом *) .build(); кластер.выполнить(поискОп); List‹Map‹String, List‹String››› results = searchOp.get().getAllResults(); - person Ateeq; 27.05.2017
comment
Это не то, что вы спросили. На самом деле ваш первоначальный вопрос даже не связан с запросом, а с привязкой индекса к корзине. Как я объяснил, вы должны использовать командный API, который работает так же, как и рабочий API. Если у вас другая проблема, задайте другой вопрос. - person vempo; 27.05.2017