操作全是换汤不换药,创建一个request,然后使用client发送就可以了
一、增加索引库数据
java
@Test
void testAddDocument() throws IOException {
//从数据库查出数据
Writer writer = writerService.getById(199);
//将查出来的数据处理成json字符串
String json = JSON.toJSONString(writer);
// 1.准备Request
IndexRequest request = new IndexRequest("writer").id(String.valueOf(writer.getId()));
// 2.准备请求参数DSL,其实就是文档的JSON字符串
request.source(json, XContentType.JSON);
// 3.发送请求
client.index(request, RequestOptions.DEFAULT);
}
二、查询索引库顺序
java
@Test
void 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);
}
三、删除索引库数据
java
@Test
void testDeleteDocumentById() throws IOException {
// 1.准备Request // DELETE /hotel/_doc/{id}
DeleteRequest request = new DeleteRequest("hotel", "61083");
// 2.发送请求
client.delete(request, RequestOptions.DEFAULT);
}
四、修改索引库数据
java
@Test
void testUpdateById() throws IOException {
// 1.准备Request
UpdateRequest request = new UpdateRequest("hotel", "61083");
// 2.准备参数
request.doc(
"price", "870"
);
// 3.发送请求
client.update(request, RequestOptions.DEFAULT);
}
五、批量导入数据
java
@Test
void 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);
}