私はRiak DBでeLevelDBバックエンドを実行しており、このmap reduceを使用してクエリを実行すると、すべてのデータがJSON文字列として返されます(予想どおり):
{
"inputs":"TWEETS_BY_ID",
"query":[
{"map":
{"language":"javascript",
"name":"Riak.mapValuesJson"
}
}]
}
このクエリは遅いので、バケット全体の小さなサブセットのみをクエリしたいだけです。タイムスタンプ付きのセカンダリ インデックスがあるので、この mapreduce を実行してみます。
{
"inputs":
{
"bucket":"TWEETS_BY_ID",
"index":"timestamp_int",
"start":"1375736484000",
"end":"1375736485000"
},
"query":[
{"map":
{"language":"javascript",
"name":"Riak.mapValuesJson",
"keep":true
}
}
]
}
次のエラーが表示されます。
{error,{exit,{json_encode,{bad_term,{1375736484000,<<"364491348659142656">>}}},
[{mochijson2,json_encode,2,
[{file,"src/mochijson2.erl"},{line,149}]},
{mochijson2,'-json_encode_proplist/2-fun-0-',3,
[{file,"src/mochijson2.erl"},{line,167}]},
{lists,foldl,3,[{file,"lists.erl"},{line,1197}]},
{mochijson2,json_encode_proplist,2,
[{file,"src/mochijson2.erl"},{line,170}]},
{mochijson2,'-json_encode_proplist/2-fun-0-',3,
[{file,"src/mochijson2.erl"},{line,167}]},
{lists,foldl,3,[{file,"lists.erl"},{line,1197}]},
{mochijson2,json_encode_proplist,2,
[{file,"src/mochijson2.erl"},{line,170}]},
{mochijson2,'-json_encode_array/2-fun-0-',3,
[{file,"src/mochijson2.erl"},{line,157}]}]}}
今日リリースされた 1.4.1 にアップグレードしましたが、セカンダリ インデックスと Javascript mapreduces に関するバグ レポートが含まれていましたが、それによってエラーが変わったようには見えません。これをデバッグする方法がよくわかりません。助言がありますか?