Riak Search为可用数据提供“未找到”错误

时间:2012-01-24 15:20:46

标签: nosql riak riak-search

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

但是当我这样做时,我发现没有找到错误。

有什么我想念的吗?我应该对桶做些什么来让它可以搜索吗?

我很感激一些帮助。

提前致谢。

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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

希望这有帮助。