我可以在Riak中的Map Reduce作业中查询二级索引数组,而不仅仅是一键吗?我想做这样的事情:
"inputs": {
"bucket": myBycket,
"index": "myIndex",
"key": key + " OR " + key + " OR " + key
},
"query": [{
"map": {
"language":"javascript",
"name":"Riak.mapValuesJson"
}
}]
}
但我没有找到任何支持。密钥没有特定的顺序,所以我不认为我可以使用远程查询。
答案 0 :(得分:1)
你当然可以使用Map Reduce处理这个问题。如果您预先指定目标键,则可以限制范围并可能提高性能。
{
"inputs": {
"bucket": myBycket,
"index": "myIndex",
"start": firstkey,
"end": lastkey
},
"query": [{
"map": {
"language":"javascript",
"source":"function(v) {
if (v.key == "key1" || v.key == "key2") {
return [<<put what you want returned here>>]
} else {
return []
}
}"
}
}]
}
您应该注意到,根据docs site javascript Map Reduce已被正式弃用,因此您可能希望使用Erlang函数进行新开发。