有没有办法通过使用Riak的HTTP API从特定存储桶中获取随机对象?让我们说你不知道桶的内容,你唯一知道的是桶中的所有对象共享一个共同的数据结构。从桶中获取任何对象以显示其数据结构的好方法是什么?最好使用MapReduce而非搜索,因为搜索会使响应变平。
答案 0 :(得分:1)
最好的选择是使用可预测的密钥,这样您就不必找到它们。由于这并非总是可行,因此二级索引是次佳的。
如果您使用的是eLevelDB,则可以查询$BUCKET
隐式索引,并将max_results设置为1,这将返回单个密钥。然后,您将发出该密钥的获取请求。
如果您使用Bitcask,则有2个选项:
虽然在没有关于密钥或内容的信息时在技术上可以在给定存储桶中找到密钥,但如果您将系统设计为创建名为<<" schema" >>或<<<&#;"样本">>在每个存储桶中包含一个示例对象,您只需发出该键的get请求,而不是搜索,折叠或映射。
答案 1 :(得分:0)
如果您使用的是Riak 2.X,那么在大多数用例中建议使用Map Reduce或2i查询进行搜索(http://docs.basho.com/riak/latest/dev/using/search/),并且可以通过HTTP API使用。