1

Say you have added a bucket to Riak like below (Using riak-php-client):

$myData = '{
    "24":{
        "1": {
           "Ryan":{
                "email":"chris@test.com",
                 "title":"Boss",
                 "Phone":"555.555.5555",
                 "Fax":"555.555.5555",
                 "Twitter":"@testingtwitter"
           }
        }
    }
}';
$data = json_decode($myData, true);
$object->setData($myData);
$object->store();

    }
}';

If you want to access the "Twitter" value. What is the correct way to access that key via Riak?

4

1 回答 1

3

如果您希望通过键以外的方式检索对象,则需要使用Riak 1.x的新二级索引功能

您可以通过将以下标头添加到 HTTPPUT以存储对象来添加表示对象中的“Twitter”字段的二级索引:

x-riak-index-twitter_bin: @testingtwitter

这将允许您通过以下方式检索它:

curl http://localhost:8098/buckets/mybucket/index/twitter_bin/@testingtwitter

(注意这需要使用 eleveldb 后端并在 Riak 配置中打开二级索引)

如果您想更直接地向我们提问,请随时在我们的 riak-users 邮件列表中这样做 - http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

编辑添加: Riak PHP 客户端通过RiakObject->addIndex() 和 setIndex() 方法 以及通过RiakBucket->indexSearch()方法获取此功能。当前生成的文档似乎不是最新的;抱歉,我会看到它得到更新。

于 2012-03-20T16:34:18.103 回答