嗨,我正在以这种方式在弹性搜索中搜索一个id字段和一个Scala可变集
var genreIdSet = scala.collection.mutable.Set[Int]()
genreIdSet+=1
genreIdSet+=2
genreIdSet+=3
bulkRequest.add(client.prepareIndex("testdb","test","123")
.setSource(jsonBuilder()
.startObject()
.field("uuid","123")
.field("GenreIdSet",genreIdSet)
.endObject()
)
)
现在我想在这里检索这个文件是代码
val get=client.prepareGet("testdb","test","123")
.setOperationThreaded(false)
.setFields("uuid","GenreIdSet")
.execute()
.actionGet()
id=get.getField("uuid").getValue.toString().toInt
var a=get.getField("GenreIdSet").getValue.toString
我得到以下输出
ID is 123
GenreIdSet is Set(1, 2, 3)
我想遍历这个Set并将其值(例如:1 2 3)存储在一个新的scala mutable中如何实现这一点请帮助我,我也是新的elasticSearch,我正在从ElasticSearch java api获取帮助。请帮助谢谢
答案 0 :(得分:0)
您可以使用Array方法
在elasticsearch中插入scala mutable Setvar genreIdSet = scala.collection.mutable.Set[Int]()
genreIdSet+=1
genreIdSet+=2
genreIdSet+=3
var xb:XContentBuilder=XContentFactory.jsonBuilder().startObject().field("uuid",artistImpl.getUuid)
xb.startArray("GetGenreIdSet")
for(n<-genreIdSet)
{
xb.value(n)
}
xb.endArray()
xb.endObject()
val bulkRequest=client.prepareBulk()
bulkRequest.add(client.prepareIndex("testdb","test","123")
.setSource(xb)
)
检索此数组并将其值存储到新的scala mutable中。这里是代码
id=get.getField("uuid").getValue.toString().toInt
var a=get.getField("GetGenreIdSet").getValues.toArray()
for(number<-a)
{
genreIdSet+=number.toString().toInt
}