首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Riak简单查询不返回数据- Riak客户端

Riak简单查询不返回数据- Riak客户端
EN

Stack Overflow用户
提问于 2014-06-03 11:02:55
回答 1查看 349关注 0票数 1

下面的片段相当简单,通过查看其他示例,它应该有效。

代码语言:javascript
复制
val result = client.mapReduce("some-users","firstName:Scala").execute
println(result.getResultRaw)// It just prints "[]"

但是,firstName:Scala的记录实际上就在这个桶中。

运行这段代码

代码语言:javascript
复制
val result = client.mapReduce("some-users").execute ,it actually returns the key of the record

当我使用rest客户端应用程序检查数据时,在浏览器中使用

代码语言:javascript
复制
http://localhost:8098//riak/some-users/key

我得到了所需的json数据,其中当然有"firstName“:" scala ",那么为什么第一个没有返回任何值的代码片段,我已经打开了'riak_search‘,尽管我使用的是一个基于scala的应用程序的riak客户端,它不应该带来任何问题。

有没有人知道为什么这个片段不能正常工作。我的riak版本是1.3.2,Riak Java客户端:- 1.1.4

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-04 03:07:13

既然你已经启动并运行了Riak,你只需要开始搜索:

首先,确保在集群中的每个节点的app.config文件中启用了搜索:

代码语言:javascript
复制
{riak_search, [
               {enabled, true}
              ]},

如果您更改了,则需要重新启动Riak才能生效。

然后,在命令行中,在希望索引的桶上安装搜索钩子:

代码语言:javascript
复制
# search-cmd install testbucket
 :: Installing Riak Search <--> KV hook on bucket 'testbucket'.

此时,如果存储桶中已经有数据,则将对而不是进行索引。您将需要重新放置任何预先存在的数据,您希望索引。

为了快速演示,我创建了3个键,创造性地命名为1,2和3;每个键包含一个简单的json对象:

代码语言:javascript
复制
curl localhost:8098/buckets/testbucket/keys/1 -H "content-type: application/json" -XPUT \
 -d '{"firstName":"Tom", "color":"red"}'
curl localhost:8098/buckets/testbucket/keys/2 -H "content-type: application/json" -XPUT \
 -d '{"firstName":"Dick", "color":"green"}'
curl localhost:8098/buckets/testbucket/keys/3 -H "content-type: application/json" -XPUT \
 -d '{"firstName":"Harry", "color":"blue"}'

然后,我可以查询搜索以找到键:

代码语言:javascript
复制
# curl http://localhost:8098/solr/testbucket/select\?q=firstName:Harry         
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">1</int>
    <lst name="params">
      <str name="indent">on</str>
      <str name="start">0</str>
      <str name="q">firstName:Harry</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">1</str>
    </lst>
  </lst>
  <result name="response" numFound="1" start="0" maxScore="0.353553">
    <doc>
      <str name="id">3
      </str>
      <str name="color">blue
      </str>
      <str name="firstName">Harry
      </str>
    </doc>
  </result>
</response>

# curl http://localhost:8098/solr/testbucket/select\?q=color:red%20or%20firstName:Harry
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">2</int>
    <lst name="params">
      <str name="indent">on</str>
      <str name="start">0</str>
      <str name="q">color:red or firstName:Harry</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">2</str>
    </lst>
  </lst>
  <result name="response" numFound="2" start="0" maxScore="0.143844">
    <doc>
      <str name="id">1
      </str>
      <str name="color">red
      </str>
      <str name="firstName">Tom
      </str>
    </doc>
    <doc>
      <str name="id">3
      </str>
      <str name="color">blue
      </str>
      <str name="firstName">Harry
      </str>
    </doc>
  </result>
</response>

我没有方便的Scala安装来编写一个示例,但是这应该会让您朝着正确的方向前进。

如果您还没有看到它们,搜索文档就在这里:

http://docs.basho.com/riak/latest/dev/using/search/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24013509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档