【问题标题】:Riak Search giving me "Not found" error for available dataRiak Search 给我可用数据的“未找到”错误
【发布时间】:2012-01-24 15:20:46
【问题描述】:

我已经在 Ubuntu Natty 上安装了 Riak 1.0.2。

我还在数据库中添加了一些示例数据。我正在使用 LevelDB 后端,因为我想测试二级索引功能。

我添加了一个test_1 存储桶。我在该存储桶中添加了以下信息。

array("name" => "Ray_6", "age" => rand(25, 90), "email" => "addr_6@orbican.com") with key "id_1"
array("name" => "Ray_7", "age" => rand(25, 90), "email" => "addr_7@orbican.com") with key "id_2"
array("name" => "Ray_8", "age" => rand(25, 90), "email" => "addr_8@orbican.com") with key "id_3"

我正在尝试使用搜索功能来查询这些数据。下面是我在命令行中输入的 CURL 请求:

curl http://localhost:8098/solr/test_1/select?q=name:Ray_6

但是当我这样做时,我得到一个找不到错误。

我有什么遗漏吗?我是否应该对存储桶做一些事情以使其可搜索?

我将不胜感激。

提前致谢。

【问题讨论】:

    标签: nosql riak riak-search


    【解决方案1】:

    首先,上面的 URL 使用的是 Riak Search 而不是二级索引。查询二级索引的URL格式为:

    /buckets/<bucket>/index/<fieldname_bin>/query
    

    通过 cURL 界面创建记录时,您可以通过添加元数据标头来形成二级索引。不同语言的客户端库将为您生成此内容。

    不过,回到您的具体问题。您是否使用 search-cmd 工具为 test_1 存储桶安装了索引?如果有,在这样做之前您的存储桶中有数据吗? Riak Search 不会追溯索引您的数据。有几种方法可以做到这一点,但如果这只是一个实验性应用,那么这两种方法都非常耗时。

    如果你的数据不多,建议你设置好索引后再重新输入。否则,您需要在读取/写入一条数据时添加二级索引或通过搜索API对其进行处理。这需要时间,但现在可以通过 Riak 获得。

    希望这会有所帮助。

    【讨论】:

    • 感谢您的评论。我刚刚发现我需要 (1) 在我的 app.config 中启用 riak_search 并 (2) 在存储桶中添加一个预提交挂钩。很快就会发布答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    相关资源
    最近更新 更多