Riak简单的SearchMapReduce引发IOException [英] Riak simple SearchMapReduce throws IOException

查看:151
本文介绍了Riak简单的SearchMapReduce引发IOException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用简单的过滤器来获取Raik对象. 在将对象存储到存储桶之前,我已经在存储桶上启用了搜索功能,然后尝试以下操作:

I am trying to fetch Raik objects using simple filters. I have enabled search on the bucket before storing objects to it, and I try the following:

MapReduceResult结果= riakClient. mapReduce("serviceProvider","name:oved1"). addMapPhase(new NamedJSFunction("Riak.mapValuesJson"),true).execute();

MapReduceResult result = riakClient. mapReduce("serviceProvider", "name:oved1"). addMapPhase(new NamedJSFunction("Riak.mapValuesJson"), true).execute();

我收到此异常:

com.basho.riak.client.RiakException:java.io.IOException:{错误":"map_reduce_error"} 在com.basho.riak.client.query.MapReduce.execute(MapReduce.java:80) 在com.att.cso.omss.datastore.riak.controllers.RiakBaseController.getAllServiceProvider(RiakBaseController.java:339) 在com.att.cso.omss.datastore.riak.App.serviceProviderTests(App.java:64) 在com.att.cso.omss.datastore.riak.App.main(App.java:38) 由以下原因引起:java.io.IOException:{错误":"map_reduce_error"} 在com.basho.riak.client.raw.http.ConversionUtil.convert(ConversionUtil.java:588) 在com.basho.riak.client.raw.http.HTTPClientAdapter.mapReduce(HTTPClientAdapter.java:386) 在com.basho.riak.client.query.MapReduce.execute(MapReduce.java:78) ...还有3个

com.basho.riak.client.RiakException: java.io.IOException: {"error":"map_reduce_error"} at com.basho.riak.client.query.MapReduce.execute(MapReduce.java:80) at com.att.cso.omss.datastore.riak.controllers.RiakBaseController.getAllServiceProvider(RiakBaseController.java:339) at com.att.cso.omss.datastore.riak.App.serviceProviderTests(App.java:64) at com.att.cso.omss.datastore.riak.App.main(App.java:38) Caused by: java.io.IOException: {"error":"map_reduce_error"} at com.basho.riak.client.raw.http.ConversionUtil.convert(ConversionUtil.java:588) at com.basho.riak.client.raw.http.HTTPClientAdapter.mapReduce(HTTPClientAdapter.java:386) at com.basho.riak.client.query.MapReduce.execute(MapReduce.java:78) ... 3 more

知道我想念什么吗?

推荐答案

能够解决此问题...

Was able to fix this issue...

显然,在存储将来需要搜索的对象之前,您需要做两件事:

apparently you need to do 2 things prior to storing objects that need to be searched in the future:

  1. 在app.config(/etc/riak)中启用搜索:

{riak_search,[{enabled,true}]}

{riak_search, [{enabled, true}]}

  1. 在存储桶上启用搜索:

存储桶= riakClient.createBucket(bucketName).enableForSearch().execute();

Bucket bucket = riakClient.createBucket(bucketName).enableForSearch().execute();

这样做之后,将返回值:

After doing that, this returns values:

      MapReduceResult result = riakClient.
            mapReduce(bucketName, "name:9"). 
            addMapPhase(new NamedJSFunction("Riak.mapValuesJson"), true).
            execute();

这篇关于Riak简单的SearchMapReduce引发IOException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆