Elasticsearch java API (26) Indices 指标管理

脚本语言编辑

API允许一个设置索引脚本的语言与之交互。如果一个人没有提供默认将使用脚本语言。

指标管理编辑

访问指标Java API,您需要调用 indices()方法从一个 AdminClient:

IndicesAdminClient indicesAdminClient = client.admin().indices();

在本指南中,我们将使用 client.admin().indices().

创建索引编辑

使用一个 IndicesAdminClient与所有默认设置,您可以创建一个索引,没有映射:

client.admin().indices().prepareCreate("twitter").get();

指标设置编辑

每个索引创建可以有与之关联的特定设置。

client.admin().indices().prepareCreate("twitter")
        .setSettings(Settings.builder()       //1      
                .put("index.number_of_shards", 3)
                .put("index.number_of_replicas", 2)
        )
        .get();    //2

设置这个索引

执行行动,等待结果

把映射编辑

把地图API允许您添加一个新的类型在创建索引:

client.admin().indices().prepareCreate("twitter")   //1
        .addMapping("tweet", "{\n" +                //2
                "    \"tweet\": {\n" +
                "      \"properties\": {\n" +
                "        \"message\": {\n" +
                "          \"type\": \"string\"\n" +
                "        }\n" +
                "      }\n" +
                "    }\n" +
                "  }")
        .get();

创建一个索引被称为 twitter

它还增加了一个 tweet映射类型。

PUT API还允许添加新的类型映射到现有的指数:

client.admin().indices().preparePutMapping("twitter")   //1
        .setType("user")                                //2
        .setSource("{\n" +                              //3
                "  \"properties\": {\n" +
                "    \"name\": {\n" +
                "      \"type\": \"string\"\n" +
                "    }\n" +
                "  }\n" +
                "}")
        .get();

// You can also provide the type in the source document
client.admin().indices().preparePutMapping("twitter")
        .setType("user")
        .setSource("{\n" +
                "    \"user\":{\n" +                   //4     
                "        \"properties\": {\n" +
                "            \"name\": {\n" +
                "                \"type\": \"string\"\n" +
                "            }\n" +
                "        }\n" +
                "    }\n" +
                "}")
        .get();

给现有的索引称为一个映射 twitter

添加一个 user映射类型。

 user有一个预定义的类型

在源类型也可以提供

您可以使用相同的API来更新现有的映射:

client.admin().indices().preparePutMapping("twitter")  //1 
        .setType("tweet")                               //2
        .setSource("{\n" +                              //3
                "  \"properties\": {\n" +
                "    \"user_name\": {\n" +
                "      \"type\": \"string\"\n" +
                "    }\n" +
                "  }\n" +
                "}")
        .get();

给现有的索引称为一个映射 twitter

更新 user映射类型。

 user现在一个新的领域 user_name

刷新编辑

刷新API允许显式地刷新一个或多个指数:

client.admin().indices().prepareRefresh().get(); //1
client.admin().indices()
        .prepareRefresh("twitter")               //2
        .get();
client.admin().indices()
        .prepareRefresh("twitter", "company")   //3
        .get();

刷新所有指标

刷新一个索引

许多指数刷新

得到设置编辑

得到设置API允许检索设置索引/指数:

GetSettingsResponse response = client.admin().indices()
        .prepareGetSettings("company", "employee").get();                           
for (ObjectObjectCursor<String, Settings> cursor : response.getIndexToSettings()) { //1
    String index = cursor.key;                                                      //2
    Settings settings = cursor.value;                                               //3
    Integer shards = settings.getAsInt("index.number_of_shards", null);             //4
    Integer replicas = settings.getAsInt("index.number_of_replicas", null);         //5
}//6

得到设置指标 company employee

遍历结果

索引名称

设置为给定的索引

这个指数的碎片数量

这个指数的副本数量

更新指标设置编辑

你可以更改索引设置通过调用:

client.admin().indices().prepareUpdateSettings("twitter")   //1
        .setSettings(Settings.builder()                     //2
                .put("index.number_of_replicas", 0)
        )
        .get();

索引更新

设置





  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Elasticsearch Java APIElasticsearch 提供的 Java 客户端 API,可以通过 Java 代码操作 Elasticsearch。 使用 Elasticsearch Java API 可以进行以下操作: 1. 创建索引 2. 删除索引 3. 添加文档 4. 更新文档 5. 删除文档 6. 查询文档 使用 Elasticsearch Java API 的步骤如下: 1. 添加 Maven 依赖 ```xml <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.14.0</version> </dependency> ``` 2. 创建客户端 ```java RestHighLevelClient client = new RestHighLevelClient( RestClient.builder(new HttpHost("localhost", 9200, "http"))); ``` 3. 创建索引 ```java CreateIndexRequest request = new CreateIndexRequest("my_index"); client.indices().create(request, RequestOptions.DEFAULT); ``` 4. 添加文档 ```java IndexRequest request = new IndexRequest("my_index"); Map<String, Object> jsonMap = new HashMap<>(); jsonMap.put("user", "kimchy"); jsonMap.put("postDate", new Date()); jsonMap.put("message", "trying out Elasticsearch"); request.source(jsonMap); IndexResponse response = client.index(request, RequestOptions.DEFAULT); ``` 5. 查询文档 ```java SearchRequest searchRequest = new SearchRequest("my_index"); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(QueryBuilders.matchQuery("message", "Elasticsearch")); searchRequest.source(searchSourceBuilder); SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); ``` 6. 关闭客户端 ```java client.close(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值