【发布时间】:2014-07-23 16:35:04
【问题描述】:
下面的 sn-p 相当简单,通过查看其他示例应该可以工作
val result = client.mapReduce("some-users","firstName:Scala").execute
println(result.getResultRaw)// It just prints "[]"
但是,带有 firstName:Scala 的记录实际上在存储桶中。
运行此代码,
val result = client.mapReduce("some-users").execute ,it actually returns the key of the record
当我使用休息客户端应用程序检查数据时,在我的浏览器中使用
http://localhost:8098//riak/some-users/key
我得到了所需的 json 数据,其中当然有“firstName”:“Scala”,那么为什么第一个 sn-p 没有返回任何值,我打开了 'riak_search',虽然我使用的是 riak基于 scala 的应用程序的 java 客户端应该不会造成任何问题。
有没有人知道为什么 sn-p 不能正常工作。我的 riak 版本是 1.3.2 和 Riak Java Client :- 1.1.4
【问题讨论】:
-
在添加数据之前是否开启了搜索? Riak 搜索不会索引在启用之前添加的数据。问题可能出在搜索上,而不是 mapreduce。试试
curl http://localhost:8098/solr/preit-users/select?q=firstName:Scala -
<?xml version="1.0" encoding="UTF-8"?> <response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">0</int> <lst name="params"> <str name="indent">on</str> <str name="start">0</str> <str name="q">firstName:Scala</str> <str name="q.op">or</str> <str name="filter"></str> <str name="df">value</str> <str name="wt">standard</str> <str name="version">1.1</str> <str name="rows">0</str> </lst> </lst> <result name="response" numFound="0" start="0" maxScore="0.0"> </result>- 结果 -
问题出在:(
numFound="0"),搜索查询未找到任何结果,因此 mapreduce 作业没有输入。 -
那么我做错了什么,我对 riak 完全陌生,所以.....任何适合我的解决方案......我没有完成的代码的任何重要部分