我要做的是从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).
这很好用,但我遇到的问题是试图找出如何使用本机api为riak做同样的查询。与riak内部客户有关的文档实际上是不存在的。
我需要的是什么:
非常感谢任何帮助。
答案 0 :(得分:0)
Riak的内部结构没有太多记录,但您可以尝试从Riak client和2I module
的来源中找出您想要的内容。您似乎需要使用riak_index:to_index_query()
构建索引查询,然后将构造的查询传递给riak_client:get_index()
函数。
但是不会对每次放置进行覆盖查询导致非常糟糕的延迟?