Es新增資訊踩坑之--The number of object passed must be even but was [1]
阿新 • • 發佈:2019-01-11
es用1.4版本時
BulkRequestBuilder bulkRequest = getTransportClient().prepareBulk(); IndexRequest request = null; String json = "{" + "\"user\":\"kimchy\"," + "\"postDate\":\"2013-01-30\"," + "\"message\":\"trying out Elasticsearch\"" + "}" request = getTransportClient() .prepareIndex(PCSConstant.ES_INDEX_QUALITY, PCSConstant.ECS_DATA_QUALITY).setSource(json) .request(); //此處setSource()的引數可以是jsong格式的的字串 bulkRequest.add(request); BulkResponse bulkResponse = bulkRequest.get();
es 變更版本後,此處程式碼不適用,會報 The number of object passed must be even but was [1] 這個異常
新的程式碼
BulkRequestBuilder bulkRequest = getTransportClient().prepareBulk(); IndexRequest request = null; String json = "{" + "\"user\":\"kimchy\"," + "\"postDate\":\"2013-01-30\"," + "\"message\":\"trying out Elasticsearch\"" + "}" Map<String,Object> map = new com.google.gson.Gson().fromJson(json,map.getClass()); request = getTransportClient() .prepareIndex(PCSConstant.ES_INDEX_QUALITY, PCSConstant.ECS_DATA_QUALITY).setSource(map) .request(); //此處setSource()的引數不能是json串了,我把他轉化成了map bulkRequest.add(request); BulkResponse bulkResponse = bulkRequest.get();