【发布时间】:2013-04-09 08:54:31
【问题描述】:
我将哈希映射存储在 riak 存储桶中,如下所示:
bucket.store(key, docHashMap).execute();我想用二级索引存储对象。
我将如何做到这一点?我知道IRiakObject 有一个addIndex 方法,但是如何在存储之前访问IRiakObject?
我认为我正在尝试做的是预期的用例,但我无法找到任何文档或示例。如果你能指出我将不胜感激。
谢谢!
更新:
@Brian Roach 在 Riak 邮件列表及下方回答了这个问题。这是我编写的扩展 HashMap 的自定义类:
class DocMap extends HashMap<String, Object> {
/**
* Generated id
*/
private static final long serialVersionUID = 5807773481499313384L;
@RiakIndex(name="status") private String status;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
我仍然可以将该对象用作普通的 hashmap 并存储键和值,但它也会将“status”写入二级索引(实际上最终被称为“status_bin”,因为它是一个字符串。
【问题讨论】:
-
在这里之前的邮件列表中发现了这个,但我想我会复制答案以供参考。
-
如果使用扩展 HashMap 的类的示例成为文档的一部分,我想很多人都会受益。通过这样做,它表明您可以在 Java 客户端中拥有与使用 python 客户端相同级别的多功能性(即,您可以存储类似 dict 的对象 - HashMaps - 可以具有任意字段名称,并且仍然为二级索引和类似的东西指定字段)
标签: riak