首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >riak-js key_filters string_to_int状态码500

riak-js key_filters string_to_int状态码500
EN

Stack Overflow用户
提问于 2014-02-12 13:36:40
回答 1查看 116关注 0票数 0

我无法使key_filter与string_to_int转换一起工作,总是得到状态代码500。

我的对象结构如下:

代码语言:javascript
复制
{ "style": "double", "capacity": 6 }

我的地图功能:

代码语言:javascript
复制
var client = require('riak-js')
    .getClient({host: "localhost", port: "10018"}),
    bucket = 'rooms';

client.mapreduce
.add({
    bucket: bucket, 
    key_filters: [["string_to_int"], ["and", [["greater_than", 1000]], [["less_than", 3000]]]]
})
.map('Riak.mapValuesJson')
.run(function(err, data){
    if (err) {
        console.log(JSON.stringify(err));
    } else {
        console.log(JSON.stringify(data));
    }
});

响应:

代码语言:javascript
复制
{ "message": "[object Object]", "statusCode": 500 }

附注:

  • 里亚克1.4.7
  • Erlang R15B01
  • nodejs v0.10.25
  • riak-js 0.10.2

UPDATE这里是我对键和响应的请求:

卷曲http://mydomain.com:10018/riak/rooms?keys=true {“道具”:{“名称”:“房间”,"allow_mult":false,"basic_quorum":false,"big_vclock":50,"chash_keyfun":{"mod":"riak_core_util",“riak_core_util”:“chash_std_keyfun”},“dw”:“法定人数”,"last_write_wins":false,"linkfun":{"mod":"riak_kv_wm_link_walker",“riak_core_util”:“mapreduce_linkfun”},"n_val":3,"notfound_ok":true,"old_vclock":86400,"postcommit":[],"pr":0,"precommit":[],"pw":0,“r”:“仲裁”,“rw”:“法定人数”,"small_vclock":50,“w”:“法定人数”,"young_vclock":20},“键”:[“6774”,"2205","6515","3812","2164“、"8677”、"3637“、"8701”、"2868“、"7249”、"3118“、"9781”、"4217“、"8432”、"4250“、"7551”、"7672“、"8736”、“7933”

使用curl请求的更新2

curl -v -X POST -H "Content-Type: application/json“http://mydomain.com:10018/mapred -d '{"inputs":{"bucket":"rooms","key_filters":["string_to_int",”and“,["greater_than",1000],[”less_than“,3000]]},”查询“:{”map“:{”语言“:”javascript“,”名称“,”Riak.mapValuesJson“}}‘

并得到了结果:

代码语言:javascript
复制
{ "phase":"listkeys", "error":"function_clause", 
    "input":"{cover,[{1392993748081016843912887106182707253109560705024, 1392993748081016843912887106182707253109560705024]}],
        {<<\"rooms\">>,[{riak_kv_mapred_filters,string_to_int,[]},{riak_kv_mapred_filters,logical_and,[[[<<\"greater_than\">>,1000]],[[<<\"less_than\">>,3000]]]}]}}",
        "type":"error","stack":"[{riak_kv_pipe_listkeys,keysend,[error,{worker_crash,{badarg,[{erlang,list_to_integer,
    [\"5Ll5Gl3L61JX2mxYUvht6OMca4d\"],[]},{riak_kv_mapred_filters,'-string_to_int/1-fun-0-',1,
    [{file,\"src/riak_kv_mapred_filters.erl\"},
    {line,84}]},
    {lists,foldl,3,[{file,\"lists.erl\"},{line,1197}]},
    {riak_kv_coverage_filter,'-compose/2-fun-1-',2,[{file,\"src/riak_kv_coverage_filter.erl\"},{line,137}]},
    {riak_kv_vnode,'-fold_fun/3-fun-3-',5,[{file,\"src/riak_kv_vnode.erl\"},{line,1342}]},
    {bitcask_nifs,keydir_fold_cont,4,...},...]},...},...],...},...]"
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-14 08:20:59

我能够复制由于curl请求而产生的错误,方法是在桶中放置一个键,该键不能通过键筛选器中的"string_to_int“成功转换为整数。我建议列出那个桶中的所有键,并验证它们都是数字的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21729488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档