Riak:Feed MR,搜索结果+申请限额

时间:2014-05-06 16:55:01

标签: mapreduce riak riak-search

我知道可以使用搜索结果提供Riak map / reduce作业。我有一桶我要搜索的物品。然后,我需要使用map / reduce处理顶部,比方说100。天真的解决方案是搜索关键字,应用限制并使用一组100个密钥启动新的map / reduce作业。

但是,我想在Riak做整个工作 - 直接用搜索启动地图/减少。我目前使用了{/ 3}}所描述的map / reduce init:

"inputs": {
    "bucket":"mybucket",
    "query":"foo OR bar"
}

有没有办法提供限制,以便搜索不会返回所有键,而只返回搜索的最高匹配?像这样:

"inputs": {
    "bucket":"mybucket",
    "query":"foo OR bar",
    "limit": 10
}

1 个答案:

答案 0 :(得分:0)

这里的诀窍是确定哪100个键是'顶部'。由于地图阶段将在1 / N vnode上单独运行,并且一次只能看到1个对象,因此map函数无法确定哪个是整个顶部键。您需要减少相位排序并返回前100个。您可以将限制传递给MR作为减少阶段的arg,因此您不需要每次都重新创建该函数。 This Question可能会为您提供一些相关信息