gpt4 book ai didi

java - Riak:通过 Java/Scala 在键上创建索引

转载 作者:行者123 更新时间:2023-12-02 05:41:43 26 4
gpt4 key购买 nike

我在 riak 上有一个存储桶,我用这种方式存储简单的 Timestamp -> String 值:

val riakClient = RiakFactory.newClient(myHttpClusterConfig)
val myBucket = riakClient.fetchBucket(name).execute
myBucket.store(timestamp.toString, value).withoutFetch().w(1).execute

我现在需要做的是在键上添加索引。我尝试以这种方式定义 Java POJO:

public class MyWrapper {
@RiakIndex(name="timestamp_index")
@RiakKey
public String timestamp;
public String value;

public MyWrapper(String timestamp, String value) {
this.timestamp = timestamp;
this.value = value;
}
}

然后运行

myBucket.store(new MyWrapper(timestamp.toString, value)).withoutFetch().w(1).execute

这种方法的问题在于,在 riak 中,实际值存储为 json 对象:

{"value":"myvalue"}

而我只需要存储 myvalue 字符串。有什么办法可以实现这一点吗?执行 store 时看不到任何 index(name) 方法,也看不到任何像 @RiakKey 这样的注释,但对于值.

最佳答案

您可以使用 Riak ObjectBuilder 创建 Riak 对象,然后在其上添加索引:

val obj = RiakObjectBuilder.newBuilder(bucketName, myKey)
.withValue(myValue)
.addIndex("timestamp_index", timestamp)
.build
myBucket.store(obj).execute

关于java - Riak:通过 Java/Scala 在键上创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24449215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com