Elasticsearch中的BulkRequest java API出错:“0”;传递的对象数必须为偶数,但为[1]”;
我正在尝试将map与ElasticSearchJavaAPI的批量插入Api一起使用Elasticsearch中的BulkRequest java API出错:“0”;传递的对象数必须为偶数,但为[1]”;,java,elasticsearch,Java,elasticsearch,我正在尝试将map与ElasticSearchJavaAPI的批量插入Api一起使用 public void bulkInsert(List<Map<String,String>> listOfObjects ){ BulkRequestBuilder bulkRequest = client.prepareBulk(); Iterator<Map<String,String>> itr = listOfObjects.ite
public void bulkInsert(List<Map<String,String>> listOfObjects ){
BulkRequestBuilder bulkRequest = client.prepareBulk();
Iterator<Map<String,String>> itr = listOfObjects.iterator();
if (itr.hasNext()){
Map<String,String> document = itr.next();
bulkRequest.add(client.prepareIndex(index, type)
.setSource(document));
}
BulkResponse bulkResponse = bulkRequest.execute().actionGet();
if (bulkResponse.hasFailures()) {
System.out.println(bulkResponse.buildFailureMessage());
}
}
public void bulkInsert(对象列表){
BulkRequestBuilder bulkRequest=client.prepareBulk();
迭代器itr=listOfObjects.Iterator();
if(itr.hasNext()){
Map document=itr.next();
bulkRequest.add(client.prepareIndex(索引,类型)
.setSource(文件);
}
BulkResponse BulkResponse=bulkRequest.execute().actionGet();
if(bulkResponse.hasFailures()){
System.out.println(bulkResponse.buildFailureMessage());
}
}
我把这个叫做
Map<String,String> jsonMap = new HashMap<String,String>();
jsonMap.put("name", fullName.toString());
jsonMap.put("file", file);
List<Map<String,String>> listOfObjects = new ArrayList<Map<String,String>>();
listOfObjects.add(jsonMap);
indexService.bulkInsert(listOfObjects);
Map jsonMap=newhashmap();
put(“name”,fullName.toString());
put(“文件”,file);
List-listOfObjects=new-ArrayList();
add(jsonMap);
index.service.bulkInsert(对象列表);
我得到了以下例外
传递的对象数必须为偶数,但为[1]正常我得到了修复:
使用Map
代替Map
Map jsonMap=newhashmap();
put(“name”,fullName.toString());
put(“文件”,file);
List-listOfObjects=new-ArrayList();
add(jsonMap);
index.service.bulkInsert(对象列表);
来自
使用地图
映射是一个键:值对集合。它表示一个JSON结构:
Map<String, Object> json = new HashMap<String, Object>();
json.put("user","kimchy");
json.put("postDate",new Date());
json.put("message","trying out Elasticsearch");
Map json=new HashMap();
put(“user”,“kimchy”);
put(“postDate”,newdate());
put(“消息”,“尝试Elasticsearch”);
看起来有一个jsonBuilder().startObject()
对象可以帮助解决这些类型的问题。
Map<String, Object> json = new HashMap<String, Object>();
json.put("user","kimchy");
json.put("postDate",new Date());
json.put("message","trying out Elasticsearch");