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

标签 scala elasticsearch scala-2.11

嗨,我正在以这种方式在 flex 搜索中存储一个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可变Set中,我该如何实现这一点,请帮助我,我还是ElasticSearch的新手,并且我正在从ElasticSearch java api获得帮助。请帮助谢谢

最佳答案

您可以使用Array方法在elasticsearch中插入一个scala可变Set

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
           }

关于scala - 如何从ElasticSearch检索存储的Scala可变集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30182809/

相关文章:

scala - spark 使用带有选项字段的案例类将数据帧转换为数据集

scala - 使用 Spark DataFrame 将数据插入 Cassandra 表

scala - 如何覆盖隐式值?

arrays - 隐式类适用于所有 Traversable 子类,包括 Array

scala - 从 Scala 宏访问代码文件和行号?

json - 使用 circe 转换 Json

windows - 在Windows中删除Elasticsearch模板

node.js - 刷新索引映射并减少总字段数

elasticsearch - Elasticsearch没有可用的磁盘空间

java - 卡夫卡生产者: how to handle "java.net.ConnectException: Connection refused"