与我们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());
}
}