【发布时间】:2012-07-20 08:04:47
【问题描述】:
我正在做一个项目,我将 Riak 与 Ripple 结合使用,但我偶然发现了一个问题。 出于某种原因,我在链接结构时会出现重复。当我使用 curl 链接 walk 时,我看不到重复项。
我的基于 curl 的链接步行的区别
curl -v http://127.0.0.1:8098/riak/users/2306403e5177b4716da9df93b67300824aa2fd0e/_,projects,0/_,tasks,1
和我的基于 ruby 波纹/riak-client 的链接步行
result = Riak::MapReduce.new(self.robject.bucket.client).
add(self.robject.bucket,self.key).
link(Riak::WalkSpec.new({:key => 'projects'})).
link(Riak::WalkSpec.new({:key => 'tasks', :bucket=>'tasks'})).
map("function(v){ if(!JSON.parse(v.values[0].data).completed) {return [v];} else { return [];} }", {:keep => true}).run
尽我所能告诉最后的地图。
但是,map/reduce 的结果包含多个重复项。我无法理解为什么。现在我已经决定根据密钥删除重复项,但我希望 riak 结果不包含重复项,因为最后删除重复项似乎很浪费。
我尝试了以下方法:
- 确保我的波纹对象的链接集中没有重复项
- 在没有 map reduce 的情况下加载数据,但链接遍历包含重复的键。
感谢任何帮助。
【问题讨论】: