24-RestHighLevelClient----索引&映射操作

与我们kibana语法几乎无缝衔接

@SpringBootTest
public class RestHighLevelClientTest {

    private RestHighLevelClient restHighLevelClient;

    @Autowired
    public RestHighLevelClientTest(RestHighLevelClient restHighLevelClient) {
        this.restHighLevelClient = restHighLevelClient;
    }

    //添加索引&映射
    @Test
    public void testIndexAndMapping() throws IOException {
        //参数1:创建索引请求对象 参数2:请求配置对象
        CreateIndexRequest createIndexRequest = new CreateIndexRequest("products");

        //一般在kibana中写好后再复制过来
        createIndexRequest.mapping("{\n" +
                "    \"properties\": {\n" +
                "      \"title\":{\n" +
                "        \"type\": \"keyword\"\n" +
                "      },\n" +
                "      \"price\":{\n" +
                "        \"type\": \"double\"\n" +
                "      },\n" +
                "      \"created_at\":{\n" +
                "        \"type\": \"date\"\n" +
                "      },\n" +
                "      \"description\":{\n" +
                "        \"type\": \"text\",\n" +
                "        \"analyzer\": \"ik_max_word\"\n" +
                "      }\n" +
                "    }\n" +
                "  }", XContentType.JSON); //参数1:指定映射json结构   参数2:指定数据结构

        CreateIndexResponse createIndexResponse = restHighLevelClient.indices().create(createIndexRequest, RequestOptions.DEFAULT);
        System.out.println("创建状态:" + createIndexResponse.isAcknowledged());

        restHighLevelClient.close();//关闭资源
    }

    //删除索引
    @Test
    public void testDeleteIndex() throws IOException {
        //参数1:删除索引对象  参数2:请求配置对象
        AcknowledgedResponse acknowledgedResponse = restHighLevelClient.indices().delete(new DeleteIndexRequest("products"), RequestOptions.DEFAULT);
        System.out.println(acknowledgedResponse.isAcknowledged());
    }
}
posted @ 2022-01-18 21:59  不是孩子了  阅读(1898)  评论(0)    收藏  举报