The number of object passed must be even but was [1]
Posted davidwang456
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了The number of object passed must be even but was [1]相关的知识,希望对你有一定的参考价值。
1.失败,使用TransportClient
public static void bulkInsert(TransportClient client) throws IOException { List<Person> ps=new ArrayList<Person>(); Person one=new Person(); one.setId("1"); one.setAddress("add"); one.setMobile("1111"); one.setSex("f"); one.setUsername("www"); ps.add(one); Person two=new Person(); two.setId("2"); two.setAddress("add"); two.setMobile("2222"); two.setSex("f"); two.setUsername("www"); ps.add(two); Persons pss=new Persons(); pss.setPersons(ps); pss.setUuid("uiid"); String jsonStr=JSON.toJSONString(pss); System.out.println(jsonStr); IndexResponse response = client.prepareIndex("www", "www").setSource(jsonStr).get(); System.out.println("创建成功!"); }
原因是:setSource方法不支持json,源码如下:
/** * Constructs a simple document with a field name and value pairs. * <p> * <b>Note: the number of objects passed to this method must be an even * number. Also the first argument in each pair (the field name) must have a * valid String representation.</b> * </p> */ public IndexRequestBuilder setSource(Object... source) { request.source(source); return this; }
2.成功,使用RestHighLevelClient 可以直接使用json
public static void InsertByJson(RestHighLevelClient client) throws IOException { List<Person> ps=new ArrayList<Person>(); Person one=new Person(); one.setId("1"); one.setAddress("add"); one.setMobile("1111"); one.setSex("f"); one.setUsername("www"); ps.add(one); Person two=new Person(); two.setId("2"); two.setAddress("add"); two.setMobile("2222"); two.setSex("f"); two.setUsername("www"); ps.add(two); Persons pss=new Persons(); pss.setPersons(ps); pss.setUuid("uiid"); String jsonStr=JSON.toJSONString(pss); System.out.println(jsonStr); IndexRequest req = new IndexRequest("www", "www"); req.source(jsonStr, XContentType.JSON); IndexResponse response = client.index(req); System.out.println("创建成功!"); }
以上是关于The number of object passed must be even but was [1]的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch6.8局部更新索引数据报错:The number of object passed must be even but was [1]
elasticsearchThe number of object passed must be even but was [1]
number field is the union of the set of all strings and the set of all numbers. The set of things th
ValueError: The number of elements in ‘fill‘ does not match the number of bands of the image (3 != 4
*Find the Number Occurring Odd Number of Times
NiFi PutKudu错误:the number of replicas does not equal the number of servers解决方案