我存儲的散列映射在了Riak桶這樣的:如何在使用Java客戶端將對象存儲在Riak中時添加二級索引的示例?
bucket.store(key, docHashMap).execute();
我想對象存儲與二級索引。
我該如何做到這一點?我知道IRiakObject
有一個addIndex
方法,但是如何在存儲之前訪問IRiakObject
?
我會認爲我正在嘗試做的是預期的用例,但我無法找到任何文檔或示例。如果你能指出我將不勝感激。
謝謝!
更新:
@布賴恩·羅奇回答這個了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_bin」,因爲它是一個字符串。
在此之前在郵件列表中找到了這一點,但想到我會複製SO的參考答案。 – 2013-04-08 22:50:54
我想如果使用擴展HashMap的類的例子成爲文檔的一部分,很多人都會受益。通過這樣做,它表明您可以像使用Python客戶端一樣在Java客戶端中擁有相同級別的通用性(即,您可以存儲類似字典的對象 - HashMaps - 可以具有任意字段名稱,並且仍然指定二級索引的字段和類似的東西) – chaimp 2013-04-09 00:47:57