как получить сохраненный изменяемый набор scala из ElasticSearch

привет, я строю одно поле идентификатора и один изменяемый набор 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)

я хочу пройти через этот набор и сохранить его значение (например: 1 2 3) в новом изменяемом наборе scala, как я могу этого добиться, пожалуйста, помогите мне, также я новичок в elasticSearch, и я получаю помощь от ElasticSearch java api. Пожалуйста, помогите, спасибо


person swaheed    schedule 12.05.2015    source источник


Ответы (1)


вы можете вставить изменяемый набор scala в elasticsearch, используя метод Array

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. Вот код

 id=get.getField("uuid").getValue.toString().toInt
        var a=get.getField("GetGenreIdSet").getValues.toArray()
           for(number<-a)
           {
               genreIdSet+=number.toString().toInt
           }
person Imran Khurram    schedule 26.05.2015