UPDATE2 解決策が見つかりました(rvirding)。私は erlang pbクライアントのキーフィルタで問題が発生しました
このようObject = riakc_obj:new(list_to_binary(Bucket),
list_to_binary(Time),
list_to_binary(TimeValue)),
ok = riakc_pb_socket:put(Db_pid, Object);
オブジェクトを入れて、私はそれがドキュメントで言及されるべきだと思う。この
Query = [{map, %query type
{modfun, riak_kv_mapreduce, map_object_value}, %function from riak erlang built-in module
none, true}],
Inputs = {Bucket, [[<<"between">>, <<"0">>, <<"0.05">>]]},
Result = riakc_pb_socket:mapred(Pid, Inputs, Query),
のような要求をしなければなりません。
BTW!私が書いた場合
Object = riakc_obj:new(<<Bucket>>,
<<Time>>,
<<TimeValue>>),
badargについてはエラーが発生しました。これについてはまだ混乱して。(
UPDATE
私はエラーを得なかった。この
Inputs = {Bucket, [[<<"between">>, 0, 1]]}
を記述する場合、私も「OK」の結果を得たが、それは予想されていない、空であります振る舞い。)
=========================================== ====================
私は完全にこれで私の心を失ったが、私はそれを終わらなければならない。
私はシンプルなアプリを持っている:それは、txtファイル(「タイムスタンプ値」のようなデータ)からデータを抽出し、Riakにそれをプッシュすると、いくつかの範囲クエリを作ります。 問題は、{error、disconnected}というキーフィルタークエリを作成したときです。 私は、このようにRiakにデータをstrore:キー - タイムスタンプ(0.43など)、値 - 値(のような1.14)、バケット - ( "2011-07-24-23-39-45" など)の情報を追加する時間を。 は、ここでリクエストのコードです:
(dca_db.erl)
handle_call({range_query, Bucket, From, To}, _, #state{db_pid = Pid} = State) ->
Query = [{map, %query type
{modfun, riak_kv_mapreduce, map_object_value}, %function from riak erlang built-in module
none, true}],
Inputs = {Bucket, [["between", 0, 1]]},
Result = riakc_pb_socket:mapred(Pid, Inputs, Query),
{reply, Result, State};
あなたはgithubの中に私のコードを見つけることができます
range_request(Pid) ->
Bucket = <<"2011-07-24-23-39-45">>,
Result = gen_server:call(Pid, {range_query, Bucket, 0, 1}),
error_logger:info_msg("RESULT:~p~n",[Result]).
(テスト/ dca_db_tests.erl) - https://github.com/DimitryDushkin/distributed_calc_riak_matlab
私は(dca_db.erl中)
Inputs = {Bucket, [["eq", 1]]},
0のようなものを使用している場合
私は別のエラー
Compiled src/dca_db.erl
undefined
*unexpected termination of test process*
::{{badmatch,{<<"2011-07-24-23-39-45">>,[["eq",1]]}},
[{dca_db,handle_call,3},
{gen_server,handle_msg,5},
{proc_lib,init_p_do_apply,3}]}
=ERROR REPORT==== 25-Jul-2011::00:27:24 ===
** Generic server dca_db terminating
** Last message in was {range_query,<<"2011-07-24-23-39-45">>,0,1}
** When Server state == {state,<0.105.0>}
** Reason for termination ==
** {{badmatch,{<<"2011-07-24-23-39-45">>,[["eq",1]]}},
[{dca_db,handle_call,3},
{gen_server,handle_msg,5},
{proc_lib,init_p_do_apply,3}]}
=======================================================
Failed: 0. Skipped: 0. Passed: 1.
One or more tests were cancelled.
Cover analysis: /Users/ddushkin/Documents/workspaces/eclipse/distributed_calc_riak_matlab/.eunit/index.html
ERROR: One or more eunit tests failed.
make: *** [test_db] Error 1
を持っていると私は、フィルタを使用しない場合は、すべてが動作します:
Inputs = Bucket,
ありがとうございました。 Riakにまで
omg、あなたは完全にリジッドでした! – Dimitry