RIAK:如何在JSON中搜索记录?

时间:2013-06-17 12:55:58

标签: php json mapreduce riak riak-search

如何在JSON中搜索记录?

例如:

  

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

     

{v:“{”得分“:0,”标签“:14,”黄金“:255}”}

如何获取“黄金”大于150或等于255的所有记录?

我在铲斗上安装了Riak Search挂钩。 我使用了riak php lib的例子。

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

没有结果。

这可以通过mapreduce完成吗?

2 个答案:

答案 0 :(得分:1)

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

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

  

“黄金”是嵌套的,所以我相信搜索词是:

     

v_gold:255

     

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

     

-Alexander Sicular

答案 1 :(得分:0)

让你有一个像这样的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
  }
}