IDEA连接ElasticSearch添加索引数据(二)
1.引入mapper
@Autowired
private HotelMapper hotelMapper;
2.添加单条索引数据
//添加单条索引数据 @Test void testAddDocument() throws IOException { // 根据ID查询数据库 Hotel hotel = hotelMapper.selectById(60301L); System.out.println(hotel); // 转换坐标 HotelDoc hotelDoc = new HotelDoc(hotel); // 1.准备Request对象 IndexRequest request = new IndexRequest("hotel").id(hotel.getId().toString()); // 2.准备json文档 request.source(JSON.toJSONString(hotelDoc),XContentType.JSON); // 3.发送请求 client.index(request,RequestOptions.DEFAULT); }
3.查询单条索引数据
//查询索引库数据 @Test void testGetDocumentById() throws IOException { // 1准备Request GetRequest request = new GetRequest("hotel","60301"); // 2发送 GetResponse response = client.get(request,RequestOptions.DEFAULT); // 3解析响应库 String json = response.getSourceAsString(); System.out.println(json); HotelDoc hotelDoc = JSON.parseObject(json, HotelDoc.class); System.out.println(hotelDoc); }
4.更新单条索引数据
// 更新DOC文档,局部更新 @Test void testUpdateDocumentById() throws IOException { // 1.准备request UpdateRequest request = new UpdateRequest("hotel", "60301"); // 2.准备请求参数 request.doc( "price","1288", "starName","五钻" ); // 3.发送请求 client.update(request,RequestOptions.DEFAULT); }
5.删除单条索引数据
// 删除Doc文档,根据ID值 @Test void testDeleteDoucumentById() throws IOException { // 1. 准备request DeleteRequest request = new DeleteRequest("hotel", "60301"); // 发送请求 client.delete(request,RequestOptions.DEFAULT); }
6.批量查询数据库添加索引数据
//批量查询数据库并添加到文档中
@Test
void testBulkRequest() throws IOException {
// 批量查询酒店数据
List<Hotel> hotels = hotelMapper.selectList(new LambdaQueryWrapper<>());
// for (Hotel hotel : hotels) {
// HotelDoc hotelDoc = new HotelDoc(hotel);
// }
// 1. 创建Request
BulkRequest request = new BulkRequest();
// 2. 准备参数
for (Hotel hotel : hotels) {
//转换为文档类型
HotelDoc hotelDoc = new HotelDoc(hotel);
// 创建新增文档对象
request.add(new IndexRequest("hotel").
id(hotelDoc.getId().toString()).
source(JSON.toJSONString(hotelDoc),XContentType.JSON)); //单条
}
//request.add(new IndexRequest("hotel").id("60301").source("json",XContentType.JSON)); //单条
// 3.发送请求
client.bulk(request,RequestOptions.DEFAULT);
}
IDEA读取 数据库添加索引数据完成,精彩继续!