Mapreduce Riak:向MR提供搜索结果+;应用限制

Mapreduce Riak:向MR提供搜索结果+;应用限制,mapreduce,riak,riak-search,Mapreduce,Riak,Riak Search,我知道可以将搜索结果提供给Riak map/reduce job。我有一桶要搜索的物品。然后,我需要用map/reduce处理顶部,比如说100。简单的解决方案是搜索关键字,应用limit并使用一组100个键启动一个新的map/reduce作业 然而,我想在里亚克完成全部工作-直接使用搜索启动地图/减少。我目前使用的map/reduce init如下所述: 是否有一种方法可以提供一个限制,以便搜索不会返回所有键,而只返回搜索的最匹配项?大概是这样的: "inputs": { "bucke

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

然而,我想在里亚克完成全部工作-直接使用搜索启动地图/减少。我目前使用的map/reduce init如下所述:

是否有一种方法可以提供一个限制,以便搜索不会返回所有键,而只返回搜索的最匹配项?大概是这样的:

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

这里的诀窍是确定哪100个键是“顶部”。由于映射阶段将在1/N个VNode上单独运行,并且一次只能看到一个对象,因此映射函数无法确定总体上哪个是最上面的关键点。您需要使用reduce阶段排序并返回前100名。您可以将限制传递给MR,作为reduce阶段的arg,这样就不需要每次都重新创建函数。 可能有一些相关的信息给你

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