IDEA连接ElasticSearch添加索引数据(二)

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读取 数据库添加索引数据完成,精彩继续!