0

我正在尝试做的是从用 erlang 编写的 post commit 挂钩中的另一个存储桶访问 2i 信息。

我一直在查看 Riak 文档以及我能想到的许多其他地方,但我似乎无法找到如何使用 Riak 内部 erlang 客户端查询 2i。

我可以使用 http 接口对 2i 进行查询:

/buckets/TEST/index/pos_int/1/15

它返回

{"keys":["set2i"]}

我可以使用以下代码(加载到 riak)创建一个条目:

Robj =  riak_object:new(<<"TEST">>, <<"set2i">>, void, "application/json"),
Lst = [{"pos_int", 5}], 
Meta = dict:store(<<"index">>,Lst, dict:new()),
I2obj = riak_object:update_metadata(Robj, Meta)
{ok,C} = riak:local_client().
C:put(I2obj).

这很好用,但我遇到的问题是试图弄清楚如何使用 riak 的本机 api 执行相同的查询。与 riak 内部客户端有关的任何文档实际上都不存在。

我需要什么:

  • 有关如何进行整数范围查询的信息
  • 关于我的其他 2i 查询选项的信息,以备不时之需

任何帮助深表感谢。

4

1 回答 1

0

Riak 的内部没有太多文档记录,但是您可以尝试从Riak 客户端2I 模块的源代码中预测您要查找的内容

您似乎需要构建一个索引查询,riak_index:to_index_query()然后将构建的查询传递给riak_client:get_index()函数。

但是不会对每个 put 进行覆盖查询会导致非常糟糕的延迟吗?

于 2013-07-20T20:04:55.713 回答