elasticsearch,scala-2.11,Scala,elasticsearch,Scala 2.11" /> elasticsearch,scala-2.11,Scala,elasticsearch,Scala 2.11" />

Scala 如何从ElasticSearch检索存储的可变集

Scala 如何从ElasticSearch检索存储的可变集,scala,elasticsearch,scala-2.11,Scala,elasticsearch,Scala 2.11,嗨,我用这种方式在弹性搜索中选择一个id字段和一个Scala可变集 var genreIdSet = scala.collection.mutable.Set[Int]() genreIdSet+=1 genreIdSet+=2 genreIdSet+=3 bulkRequest.add(client.prepareIndex("testdb","test","123") .setSource(jsonBuilder() .startObj

嗨,我用这种方式在弹性搜索中选择一个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=get.getField("uuid").getValue.toString().toInt
        var a=get.getField("GetGenreIdSet").getValues.toArray()
           for(number<-a)
           {
               genreIdSet+=number.toString().toInt
           }
我得到以下输出

ID is 123
GenreIdSet is Set(1, 2, 3)

我想遍历此集合并将其值存储在一个新的scala可变集合中,例如:1 2 3如何实现此目的请帮助我也是elasticSearch的新手,我正在接受elasticSearch java api的帮助。请帮助。谢谢。

您可以使用数组方法在elasticSearch中插入一个scala可变集合

var 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可变集下面是代码

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=get.getField("uuid").getValue.toString().toInt
        var a=get.getField("GetGenreIdSet").getValues.toArray()
           for(number<-a)
           {
               genreIdSet+=number.toString().toInt
           }