公式の Riak Java クライアント v2.0.2 を使用しています。以前に書き込まれた値を (2i インデックスで) 更新すると、セカンダリ インデックスが保持されません。
これは私が更新する方法です:
Location location = new Location(this.namespace, key);
UpdateValue updateOp = new UpdateValue.Builder(location)
.withFetchOption(FetchValue.Option.DELETED_VCLOCK, true)
.withUpdate(new RiakKVUpdateValue(values))
.build();
そして、これは私の更新クラスです:
public class RiakKVUpdateValue extends Update<Map<String, String>> {
private final Map<String, String> value;
public RiakKVUpdateValue(HashMap<String, ByteIterator> values) {
this.value = StringByteIterator.getStringMap(values);
}
@Override
public Map<String, String> apply(Map<String, String> original) {
return this.value;
}
}
2i インデックスを使用したオブジェクトの更新に関するドキュメントは見つかりませんでした。
- 私は何か間違っていますか?
- 手動で読み取り/変更/書き込みを行う必要がありますか?