zoukankan      html  css  js  c++  java
  • 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("创建成功!");
    
        }
  • 相关阅读:
    【转】Hibernate 配置
    【转】关于Log4j
    This project is not a myeclipse hibernate project . Assuming Hibernate 3 capabilities configuration editor
    java集合框架分析
    鸡蛋篮子与格子取数
    贪心与回溯与DP
    NP问题
    子集生成和全排列
    JDK动态代理实现原理(转)
    java类初始化/生命周期及反射及动态代理
  • 原文地址:https://www.cnblogs.com/davidwang456/p/9984516.html
Copyright © 2011-2022 走看看