Javascript 如何在elasticsearch中插入对象数组
我有ElasticSearch中的文档Javascript 如何在elasticsearch中插入对象数组,javascript,scala,
elasticsearch,Javascript,Scala,
elasticsearch,我有ElasticSearch中的文档 { "uuid" : 0, "StatusHistoryList" : [ { "ArtWorkDate" : "2015-08-25T16:29:32.011+05:00", "ArtworkStatus" : "ACTIVE" } ] } 我正在通过代码添加此字段,但在添加此数组字段时遇到问题StatusHistoryList 我是这样做的 var
{
"uuid" : 0,
"StatusHistoryList" : [
{
"ArtWorkDate" : "2015-08-25T16:29:32.011+05:00",
"ArtworkStatus" : "ACTIVE"
}
]
}
我正在通过代码添加此字段,但在添加此数组字段时遇到问题StatusHistoryList
我是这样做的
var xb:XContentBuilder=XContentFactory.jsonBuilder().startObject()
.field("uuid",artWork.getUuid)
xb.startArray("StatusHistoryList")
for(h<-history)
{
var date=h.date.toString()
var artworkStatus=h.artworkStatus.toString
xb.startObject()
xb.field("ArtWorkDate",date)
xb.field("ArtworkStatus",artworkStatus)
xb.endObject()
}
xb.endArray()
xb.endObject()
val bulkRequest=client.prepareBulk()
bulkRequest.add(client.prepareIndex("arteciatedb","artWork",artWork.uuid.toString())
.setSource(xb)
)
val bulkResponse =bulkRequest.execute().actionGet()
if(bulkResponse.hasFailures())
{
log.error("something is wrong here ")
}}
要查看您做错了什么:
var xb:XContentBuilder=XContentFactory.jsonBuilder().startObject()
.field("uuid",artWork.getUuid)
xb.startArray("StatusHistoryList")
for(h<-history)
{
var date=h.date.toString()
var artworkStatus=h.artworkStatus.toString
xb.startObject()
xb.field("ArtWorkDate",date)
xb.field("ArtworkStatus",artworkStatus)
xb.endObject()
}
xb.endArray()
xb.endObject()
val bulkRequest=client.prepareBulk()
bulkRequest.add(client.prepareIndex("arteciatedb","artWork",artWork.uuid.toString()).setSource(xb))
try {
BulkResponse response=currentRequest.execute().actionGet();
if (response.hasFailures()) {
logger.error("failed to execute" + response.buildFailureMessage()); }
} catch ( Exception e) {
logger.error("Failed to process bulk",e);
}
}
var xb:XContentBuilder=XContentFactory.jsonBuilder().startObject()
.field(“uuid”,artWork.getUuid)
xb.startArray(“状态历史列表”)
对于(hDo)您是否从bulkResponse
获得更精确的错误消息?我认为这是一个简单的错误,您应该将var artworkStatus=h.artworkStatus.toString更改为var artworkStatus=h.artworkStatus.toString()
var xb:XContentBuilder=XContentFactory.jsonBuilder().startObject()
.field("uuid",artWork.getUuid)
xb.startArray("StatusHistoryList")
for(h<-history)
{
var date=h.date.toString()
var artworkStatus=h.artworkStatus.toString
xb.startObject()
xb.field("ArtWorkDate",date)
xb.field("ArtworkStatus",artworkStatus)
xb.endObject()
}
xb.endArray()
xb.endObject()
val bulkRequest=client.prepareBulk()
bulkRequest.add(client.prepareIndex("arteciatedb","artWork",artWork.uuid.toString()).setSource(xb))
try {
BulkResponse response=currentRequest.execute().actionGet();
if (response.hasFailures()) {
logger.error("failed to execute" + response.buildFailureMessage()); }
} catch ( Exception e) {
logger.error("Failed to process bulk",e);
}
}