操作全是换汤不换药,创建一个request,然后使用client发送就可以了
一、增加索引库数据
@Testvoid testAddDocument() throws IOException {//从数据库查出数据Writer writer = writerService.getById(199);//将查出来的数据处理成json字符串String json = JSON.toJSONString(writer);// 1.准备RequestIndexRequest request = new IndexRequest("writer").id(String.valueOf(writer.getId()));// 2.准备请求参数DSL,其实就是文档的JSON字符串request.source(json, XContentType.JSON);// 3.发送请求client.index(request, RequestOptions.DEFAULT);}
二、查询索引库顺序
@Testvoid testGetDocumentById() throws IOException {// 1.准备Request // GET /hotel/_doc/{id}GetRequest request = new GetRequest("writer", "199");// 2.发送请求GetResponse response = client.get(request, RequestOptions.DEFAULT);// 3.解析响应结果String json = response.getSourceAsString();Writer writer = JSON.parseObject(json, Writer.class);System.out.println("writerDoc = " + writer);}
三、删除索引库数据
@Testvoid testDeleteDocumentById() throws IOException {// 1.准备Request // DELETE /hotel/_doc/{id}DeleteRequest request = new DeleteRequest("hotel", "61083");// 2.发送请求client.delete(request, RequestOptions.DEFAULT);}
四、修改索引库数据
@Testvoid testUpdateById() throws IOException {// 1.准备RequestUpdateRequest request = new UpdateRequest("hotel", "61083");// 2.准备参数request.doc("price", "870");// 3.发送请求client.update(request, RequestOptions.DEFAULT);}
五、批量导入数据
@Testvoid testBulkRequest() throws IOException {List<Writer> list = writerService.list();BulkRequest request = new BulkRequest();for (Writer writer : list) {HotelDoc hotelDoc = new HotelDoc(hotel);String json = JSON.toJSONString(writer);request.add(new IndexRequest("writer").id(String.valueOf(writer.getId())).source(json, XContentType.JSON));}client.bulk(request, RequestOptions.DEFAULT);}