Я сталкиваюсь с ошибками при попытке индексировать несколько документов в solr
с помощью spark-streaming
с использованием solrj
. Каждую запись я анализирую и индексирую, каждая micro-batch
.
В приведенном ниже коде первый метод (с тегами) работает как положено. Второй метод (с тегами) ничего не делает, он не завершается ошибкой.
В первом варианте я индексирую запись для каждого раздела; бесполезный, но функциональный.
Во втором методе я преобразовываю каждый элемент своих разделов в документ, а затем пытаюсь проиндексировать каждый из них, но не удается: в коллекции нет записей.
Я использую solrj 4.10
и spark-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()
}
}}
Я хотел бы понять, почему второй метод не работает, и найти решение для индексации нескольких документов.