Riak:通过 Map Reduce 查询 2i 数组
Riak: query array of 2i through Map Reduce
我可以在 Riak 的 Map Reduce 作业中查询二级索引数组,而不仅仅是一个键吗?我想做这样的事情:
"inputs": {
"bucket": myBycket,
"index": "myIndex",
"key": key + " OR " + key + " OR " + key
},
"query": [{
"map": {
"language":"javascript",
"name":"Riak.mapValuesJson"
}
}]
}
但我还没有找到任何支持。键没有特定顺序,所以我不认为我可以使用范围查询。
您当然可以使用 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 函数进行新开发。
我可以在 Riak 的 Map Reduce 作业中查询二级索引数组,而不仅仅是一个键吗?我想做这样的事情:
"inputs": {
"bucket": myBycket,
"index": "myIndex",
"key": key + " OR " + key + " OR " + key
},
"query": [{
"map": {
"language":"javascript",
"name":"Riak.mapValuesJson"
}
}]
}
但我还没有找到任何支持。键没有特定顺序,所以我不认为我可以使用范围查询。
您当然可以使用 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 函数进行新开发。