Riak: запрос 2i не возвращает ключ

Я просто проверяю риак. Я установил бэкэнд в память, дал ему максимум 2 ГБ и включил поиск.

Я использую nodejs и simpleriak. Я вставил 100 тестовых объектов со следующим кодом:

for ( var i = 0; i < 100; i++ ) {
    //add
    riak.put({
        bucket: 'testy',
        key: String(i),
        index: { a_bin: 'A' + i },
        index: { b_bin: 'B' + i },
        data: {
            A: "A" + i,
            B: "B" + i,
            C: "C" + i
        }
    }, function (err, reply) {
        console.log(err, reply);
    });
};

Теперь я могу успешно получать свои объекты по ключу из командной строки, используя:

$ curl -v http://localhost:8098/buckets/testy/keys/1

Однако я не могу получать объекты с помощью моего 2i:

$ curl -v http://localhost:8098/buckets/testy/index/a_bin/A1

возвращается

{"keys":[]}

Мысли? Спасибо!


person Adam    schedule 13.03.2015    source источник
comment
Я не думаю, что JSON допускает повторяющиеся имена ключей в объекте, поэтому index: { a_bin: 'A' + i },index: { b_bin: 'B' + i }, недействителен и может интерпретироваться как второе значение для index, заменяющее первое.   -  person Joe    schedule 15.03.2015
comment
Это имеет смысл, но в документации конкретно указано: вы можете указать сколько угодно индексов, имя свойства будет индексом, а его значение - ключом.   -  person Adam    schedule 20.03.2015
comment
Вы пытались добавить их как отдельные свойства одного объекта индекса вместо конфликтующих объектов индекса?   -  person Joe    schedule 20.03.2015


Ответы (1)


Для всех, кто сталкивается с этим, похоже, что есть проблема с драйвером simpleriak. Я просто добавил объект через http api из командной строки, а затем успешно вызвал его с помощью индекса.

person Adam    schedule 13.03.2015