1

我已经在 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

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

有什么我想念的吗?我应该对存储桶做一些事情以使其可搜索吗?

我会很感激一些帮助。

提前致谢。

4

1 回答 1

2

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

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

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

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

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

希望这可以帮助。

于 2012-01-25T18:25:05.447 回答