索引多个文档

Indexing multiple documents

我在尝试使用 solrjspark-streaming 索引 solr 中的多个文档时遇到错误。我解析和索引的每条记录,每条 micro-batch.

在下面的代码中,第一个方法(已标记)按预期运行。第二种方法(已标记)不做任何事情,它不会失败。

在第一种方案中,我为每个分区索引一条记录;无用,但功能。 在第二种方法中,我将分区的每个元素转换为一个文档,然后尝试为每个元素建立索引,但失败了:集合中没有显示任何记录。

我使用 solrj 4.10spark-2.2.1

//method 1
myDStream.foreachRDD { rdd => rdd.foreachPartition { records =>

  val solrServer = new HttpSolrServer(collectionUrl)

  val document = new SolrInputDocument()
  document.addField("key", "someValue")
  ...

  solrServer.add(document)
  solrServer.commit()
}}
//method 2
myDStream.foreachRDD { rdd => rdd.foreachPartition { records =>

  val solrServer = new HttpSolrServer(collectionUrl)

  records.map { record =>

    val document = new SolrInputDocument()
    document.addField("key", record.key)
    ...

    solrServer.add(document)
    solrServer.commit()
  }
}}

我想了解为什么第二种方法不起作用,并找到解决多文档索引的方法。

解决方案是通过 rdds 处理记录:

myDStream.foreachRDD { rdd => rdd.foreach { record =>

  val solrServer = new HttpSolrServer(collectionUrl)

  val document = new SolrInputDocument()
  document.addField("key", record.key)
  ...

  solrServer.add(document)
  solrServer.commit()
}}

请参阅上面 EricLavault 的评论,了解有关问题来源怀疑的更多信息。