RIAK:如何在JSON中搜索记录


RIAK: How to search for records in JSON?

如何在JSON中搜索记录?

例如:

http://server.cc/riak/Scores/user12

{v: "{"score":0,"tab":14,"gold":255}"}

如何获得"gold"大于150或等于255的所有记录?

我在桶上安装了Riak Search钩子。我使用的例子来自riak php库。

 $client = new Riak(self::HOST, self::PORT);
 $bucket = $client->bucket("Scores");
 $results = $client->search("Scores", "gold:255")->run();

没有结果

可以通过mapreduce实现吗?

刚刚在Riak Users邮件列表中看到了这个:

http://lists.basho.com/pipermail/riak-users_lists.basho.com/2013-June/012286.html

"gold"是嵌套的,所以我相信搜索词应该是:

v_gold: 255

下划线用作嵌套键之间的分隔符。

亚历山大·斯库拉

让你有一个json对象,像这样:

var goldJson=
    [
        {"score": ,   "tab": , "gold": 255},
        {"score": ,   "tab": , "gold": 256},
        {"score": , "tab": , "gold": 257}
    ]

现在你可以使用以下代码获得超过150或等于255的金币:

for(var i = 0; i < goldJson.length; i++)
{
  if(goldJson[i].gold >150 || goldJson[i].gold == 255)
  {
    //get gold More than 150 or equal to 255
  }
}