阅读 72

Elasticsearch 从入门到学会之五(索引API-索引属性)

在上一篇中,我们针对索引 API 相关管理 API 进行了总结,包括常见的 CRUD 及 Elasticsearch 特殊的 API。其中,我们提到,在 Elasticsearch 中,没有直接针对索引本身的“修改” API,而只能修改索引相关的属性。本篇,将介绍与属性相关的 API。

索引的属性主要包括:Mapping(映射)、Alias(别名)、Setting(设置)。对索引的修改,也多是针对此三种属性进行的。

映射管理

映射相关的 API 包括有查询映射、修改映射,以及特殊的查询字段映射及查询类型存在。

  • 查询映射

    GET /_mapping
    
    GET //_mapping
    

    使用 GET 方法,API 关键字为 _mapping,中间参数是索引名字,可以用通配符代表所有索引,或者用逗号分隔多个索引名字,如果不指定,代表查询所有索引的映射。

  • 修改映射

    PUT /my-index-000001/_mapping
    {
      "properties": {
        "email": {
          "type": "keyword"
        }
      }
    }
    

    使用 PUT 方法,中间参数是索引名字,可以用通配符代表所有索引,也可以用逗号分隔多个索引名字,请求体中为要修改的映射的字段。

    要注意,此方法用于添加新的字段以及对已有字段添加新的属性,而不是真的修改已有字段的属性。

    如果想要修改一个已有字段的属性,官方推荐方式如下:

    1.创建一个正确的新索引

    2.把数据重索引到新索引

    3.删除旧索引

    参阅

    如果想要修改一个已有字段的名字,官方推荐方法如下:

    添加一个别名来替代字段名字

    参阅

  • 查询字段映射

    此 API 在“查询映射”的基础,查询更细的“字段”的映射。

    GET /_mapping/field/
    
    GET //_mapping/field/
    

    方法为 GET,API 关键字为 /_mapping/field。参数为索引名字和字段名字。如果不指定索引,代表查询所有索引下相应字段的映射。在 Elasticsearch 中,很多名字的查询都支持模糊查询,所以这里的索引名字、字段名字,可以是模糊查询(如:acc*)。

  • 查询类型存在

    从 7.0.0 版本开始,此 API 不再被推荐。

    此 API 主要是用于查询映射的类型是否存在。

    HEAD //_mapping/
    

    方法为 HEAD,API 关键字为 _mapping,参数为索引名字和类型。如果查到有,响应码为 200,没查到,响应码为 404

别名管理

别名相关 API 主要有创建别名、修改别名、查询别名和删除别名。

  • 别名 API

    此 API 可以通过在请求体指定不同的 action 实现对别名的创建、删除和修改(通过在一个请求中删除的同时又创建),还能使用日期数学,实现动态的别名创建。

    POST /_aliases
    {
      "actions" : [
        { "add" : { "index" : "my-index-000001", "alias" : "alias1" } }
      ]
    }
    
  • 创建、修改别名

    此 API 可以创建或修改索引的别名。

    PUT //_alias/
    
    POST //_alias/
    
    PUT //_aliases/
    
    POST //_aliases/
    

    方法支持 PUTPOST,API 中关键字为 _alias_aliases。参数分别代表索引名字和别名。

    如果进一步在请求体中使用过滤器,还能实现针对指定数据添加别名。

  • 查询索引别名

    此 API 可以查询索引别名。

    GET /_alias
    
    GET /_alias/
    
    GET //_alias/
    

    方法为 GET,API 中关键字为 _alias。参数分别代表索引名字和别名,如果索引名字不指定,就代表所有索引。索引名字也可以使用通配符代表所有索引。

  • 删除索引别名

    此 API 可以删除索引别名。

    DELETE //_alias/
    
    DELETE //_aliases/
    

    方法为 DELETE,API 中关键字为 _alias_aliases。参数分别为索引名字和别名。索引名字也可以使用通配符代表所有索引。

索引设置

设置相关 API 包括查询设置、修改设置以及特殊的分析 API。

  • 查询设置

    此 API 查询索引的设置(setting)。

    GET //_settings
    
    GET //_settings/
    

    方法为 GET,API 中关键字为 _settings。参数分别为索引名字和设置名字。不指定索引名字,就代表所有索引,不指定设置名字,就代表所有设置。索引名字和设置名字都支持通配符,通配符代表所有。

  • 修改设置

    此 API 修改动态索引设置。(一定要注意的是,只有符合 Elasticsearch 规定的动态索引设置才能在索引创建后修改)

    PUT /my-index-000001/_settings
    {
      "index" : {
        "number_of_replicas" : 2
      }
    }
    

    方法为 PUT,API 中关键字为 _settings。参数为索引名字。请求体中为要修改的设置。

  • 分析 API

    此 API 用于分析文本。(从学到这里的程度看,和设置本身关系并不大,因为此 API 是用于直接指定分析器对文本进行分析,或者在索引上进行分析。可能学到后面才能理解官方将其放在这里的原因)

    GET /_analyze
    
    POST /_analyze
    
    GET //_analyze
    
    POST //_analyze
    

    方法为 GETPOST,API 中关键字为 _analyze,参数为索引名字。

    示例:

    GET /_analyze
    {
      "analyzer" : "standard",
      "text" : "Quick Brown Foxes!"
    }
    

以上,就是索引本身属性相关的 API,包括映射、别名、设置。

欢迎关注我的博客:

欢迎关注我的公众号:阿呜的编程

原文:https://www.cnblogs.com/dev2007/p/15146436.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐