RestClient操作索引库

创建索引库

ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。

mysql表结构

RestClient操作索引库_第1张图片

 es表结构

RestClient操作索引库_第2张图片

 RestClient操作索引库_第3张图片RestClient操作索引库_第4张图片

初始化JavaRestClient 

 导入依赖

        
            org.elasticsearch.client
            elasticsearch-rest-high-level-client
        
    
        1.8
        7.12.1
    
@SpringBootTest(value = "HotelDemoApplicationTests.class")
public class HotelIndexText {

    private RestHighLevelClient client;

    @BeforeEach
    public void setUp(){
        this.client=new RestHighLevelClient(RestClient.builder(
                        HttpHost.create("http://8.130.89.67:9200")
                )
        );
    }

    @Test
    public void testCreateHotelIndex() throws IOException {
        // 1.创建Request对象
        CreateIndexRequest request = new CreateIndexRequest("hotel");
        // 2.请求参数,MAPPING_TEMPLATE是静态常量字符串,内容是创建索引库的DSL语句
        request.source(MAPPING_TEMPLATE, XContentType.JSON);
        // 3.发起请求
        client.indices().create(request, RequestOptions.DEFAULT);
    }

    @AfterEach
    public void tearDown() throws IOException {
        this.client.close();
    }

}

删除索引库

//    TODO 删除索引
    @Test
    public void testDeleteHotelIndex() throws IOException {
        // 1.创建Request对象
        DeleteIndexRequest request=new DeleteIndexRequest("hotel");
        // 2.发起请求
        client.indices().delete(request,RequestOptions.DEFAULT);
    }

判断索引库是否存在

//    TODO 查看索引
    @Test
    public void testExistHotelIndex() throws IOException {
        // 1.创建Request对象
        GetIndexRequest request=new GetIndexRequest("hotel");
        // 2.发起请求
        boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);
        //输出
        System.err.println(exists);
    }

基本步骤

        初始化 RestHighLevelClient 对象

        创建 XXIndexRequest:Create、Get、Delete

        准备DSL        (Create时)

        发送请求

你可能感兴趣的:(搜索引擎)