【问题标题】:RIAK: How to search for records in JSON?RIAK:如何在 JSON 中搜索记录?
【发布时间】:2013-06-17 12:55:57
【问题描述】:

如何在 JSON 中搜索记录?

例如:

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

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

如何获取“gold”大于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来完成吗?

【问题讨论】:

    标签: php json mapreduce riak riak-search


    【解决方案1】:

    刚刚在 Riak 用户邮件列表中看到了这个消息:

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

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

    v_gold:255

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

    -亚历山大·希拉尔

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 2013-06-26
      相关资源
      最近更新 更多