Java客户端如何直接调用es的API
【摘要】 Java客户端如何直接调用es的API前言这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。作者:神的孩子都在歌唱一. 问题今天做项目的时候,想要直接通过java客户端调用es的api创建策略PUT {{url}}/_ilm/policy/test_policy{ "policy": { "phases": { "hot": { "m...
前言
这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。
作者:神的孩子都在歌唱
一. 问题
今天做项目的时候,想要直接通过java客户端调用es的api创建策略
PUT {{url}}/_ilm/policy/test_policy
{
"policy": {
"phases": {
"hot": {
"min_age": "0ms",
"actions": {
"rollover": {
"max_docs": 1000000
}
}
}
}
}
}
我的项目是用springboot写的,通过以下依赖来创建es的客户端
<dependency>
<groupId>co.elastic.clients</groupId>
<artifactId>elasticsearch-java</artifactId>
<version>8.11.4</version>
<scope>compile</scope>
</dependency>
二. withJson
我去看了一眼 ,它可以通过withJson来调用
所以我们可以根据它的列子来编写代码,具体代码如下
String policyName = "max_docs_policy";
Reader policyBody = new StringReader("{\n" +
" \"policy\": {\n" +
" \"phases\": {\n" +
" \"hot\": {\n" +
" \"min_age\": \"0ms\",\n" +
" \"actions\": {\n" +
" \"rollover\": {\n" +
" \"max_docs\": 1000000\n" +
" }\n" +
" }\n" +
" },\n" +
" \"warm\": {\n" +
" \"min_age\": \"30d\",\n" +
" \"actions\": {\n" +
" \"set_priority\": {\n" +
" \"priority\": 50\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
" }\n" +
" }");
try {
// 判断策略是否存在
elasticsearchManageClient.ilm().getLifecycle(g->g.name(policyName));
} catch (Exception e) {
// 不存在就创建
elasticsearchManageClient.ilm().putLifecycle(l->l.name(policyName).withJson(policyBody));
}
通过以上代码就能够创建指定的策略了
作者:神的孩子都在歌唱
本人博客:https://blog.csdn.net/weixin_46654114
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)