有人可以帮助我,如何在elastic4s中执行带有标头“ Content-Type:application / x-ndjson”的批量插入吗?我已经尝试过了
client.execute {
bulk(
indexInto("cars" / "car").source(getCarsFromJson)
).refresh(RefreshPolicy.WaitFor)
}.await
它适用于json中的一个元素,但是当我向json中添加另一个元素时,没有任何元素被添加到Elastic中。
答案 0 :(得分:0)
确定使用正确的语法吗?不应该说
"cars/car"
代替
"cars" / "car"
答案 1 :(得分:0)
source
上的indexInto
方法将不支持多个json对象,因为您正试图将多个文档放入单个文档插入中。
相反,您将需要获取json,将其解析为对象,然后遍历它们,为每个对象添加一个插入文档。
类似以下内容:
def getCarsFromJson: Seq[String] = /// must return a sequence of json strings
val inserts = getCarsFromJson.map { car => indexInto("cars" /"car").source(car) }
client.execute {
bulk(inserts:_*).refresh(RefreshPolicy.WaitFor)
}