Elasticsearch java API (26) Indices 指标管理 - Go语言中文社区

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();

索引更新

设置





版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u012116196/article/details/51820741
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-08 17:07:59
  • 阅读 ( 1759 )
  • 分类:研发管理

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢