zoukankan      html  css  js  c++  java
  • Elasticsearch 从入门到学会之五(索引API-索引属性)

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

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

    映射管理

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

    • 查询映射

      GET /_mapping
      
      GET /<target>/_mapping
      

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

    • 修改映射

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

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

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

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

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

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

      3.删除旧索引

      参阅 变更已有字段的映射

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

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

      参阅重命名字段

    • 查询字段映射

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

      GET /_mapping/field/<field>
      
      GET /<target>/_mapping/field/<field>
      

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

    • 查询类型存在

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

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

      HEAD /<index>/_mapping/<type>
      

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

    别名管理

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

    • 别名 API

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

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

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

      PUT /<index>/_alias/<alias>
      
      POST /<index>/_alias/<alias>
      
      PUT /<index>/_aliases/<alias>
      
      POST /<index>/_aliases/<alias>
      

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

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

    • 查询索引别名

      此 API 可以查询索引别名。

      GET /_alias
      
      GET /_alias/<alias>
      
      GET /<index>/_alias/<alias>
      

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

    • 删除索引别名

      此 API 可以删除索引别名。

      DELETE /<index>/_alias/<alias>
      
      DELETE /<index>/_aliases/<alias>
      

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

    索引设置

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

    • 查询设置

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

      GET /<target>/_settings
      
      GET /<target>/_settings/<setting>
      

      方法为 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 /<index>/_analyze
      
      POST /<index>/_analyze
      

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

      示例:

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

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

    欢迎关注我的博客:阿呜的边城

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

  • 相关阅读:
    js跳出循环
    JavaScript prototype属性
    【DP专题】——洛谷P2279:消防局的设立
    转:android中dialog工具类的实现(多种dialog的创建)
    转:setContentView的时候,到底发生了什么
    转:Handler一定要在主线程实例化吗?new Handler()和new Handler(Looper.getMainLooper())的区别
    转:Android Studio中的Gradle是干什么的
    转:Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB
    Android 学习
    com.baidu.navisdk.adapter找不到 在百度定位SDK的基础之上导入导航的SDK(针对新版本的坑!)
  • 原文地址:https://www.cnblogs.com/dev2007/p/15146436.html
Copyright © 2011-2022 走看看