在此,我使用的是Elasticsearch7.12.1版本,以下是我自己的工具类:
传入两个参数,一个对象组成的集合,一个是索引名字
public static void EsPost(List list, String name){ try { //RestClientBuilder用来构建一个Rest请求 RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost("*.*.*.*", 9200,"http")); //ES用来执行增删改查最后发请求的高层对象 //通过restHighLevelClient来发请求 RestHighLevelClient restHighLevelClient = new RestHighLevelClient(restClientBuilder); //创建一个批量操作对象 BulkRequest bulkRequest = new BulkRequest(); for (int i = 0; i < list.size(); i++) { //创建索引 IndexRequest indexRequest = new IndexRequest(name); //设置数据ID和数据本体 indexRequest.id(i+""); indexRequest.source(JSON.toJSONString(list.get(i)), XContentType.JSON); //source资源的意思,在这里是设置数据本体 //将索引数据添加到批量操作对象中 bulkRequest.add(indexRequest); } //通过高层对象来进行发送请求 restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT); } catch (IOException e) { e.printStackTrace(); } }
在RestClient.builder(new HttpHost("*.*.*.*", 9200,"http"))方法里,new HttpHost("*.*.*.*", 9200,"http")第一个参数代表的是你Elasticsearch设置的ip地址,例如192.168.1.107,第二个是Elasticsearch设置的端口号