ElasticSearch客户端操作

  1. 1.查看ES状态
GET http://hadoop001:9200/_cat/health

红色表示数据不可用,黄色表示数据可用,部分副本没有分配,绿色表示一切正常

2.查询ES全部存在的索引

 

GET http://hadoop001:9200/_cat/indices?v

​​​​​​​

3.添加索引

PUT http://hadoop001:9200/要添加的索引名称

#示例

http://hadoop001:9200/index001

索引=表 (properties下面内容就是表示这个表的每个字段的类型)

 

4.单独添加一个字段类型

在ES7中可以不用一次性把全部字段的映射信息都创建好, 可以根据后来根据业务情况自行进行补充

因为: 现在一个索引下面的数据全部都通用一个类型(_doc)

比如: 我现在index1索引映射的类型是:

{

  "mappings": {

    "properties": {

      "name": {

        "type": "text"

      },

      "age": {

        "type": "integer"

      }

    }

  }

}

{

  "mappings": {

    "properties": {

      "name": {

        "type": "text"

      },

      "age": {

        "type": "integer"

      }

    }

  }

}

插入时候数据是

{

     "name":"胡旺",

     "age":"22"

}

添加一个时间字段,用于查询指定时间段的数据

第一步先添加映射字段

PUT http://hadoop001:9200/指定索引/_mappings

{

  "properties": {

    "time": {

      "type": "date",

      "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis||date_optional_time ",

      "index": true

    }

  }

}

会有三种情况发生:

  1. 如果原来存在那么判断类型是否一致如果都一样那么, 执行成功
  1. 如果原来不存在,就在原来的映射里添加这个字段映射信息, 执成功
  1. 如果原来字段存在,并且原来字段内数据的类型和要修改的不一样,那么就会报错

mapper [time] of different type, current_type [text], merged_type [date]

为了避免第3点的问题发送,我们在映射字段前去查询下当前索引的映射情况,不要和原来的字段名称一样了 ,查询索引内映射的语法如下​​​​​​​ 

GET http://hadoop001:9200/index1/_mappings

 

5.创建索引的同时添加字段信息

PUT http://hadoop001:9200/要添加的索引名称

示例:

PUT http://hadoop001:9200/index_01

请求体:

{

  "mappings": {

    "properties": {

      "name": {

        "type": "text",

        "fields": {

          "keyword": {

            "type": "keyword",

            "ignore_above": 256

          }

        }

      }

      ,

      "price": {

        "type": "float"

      }

    }

  }

}

我们在es中添加索引数据时,可以不需要指定数据类型,es中有自动影射机制,字符串映射为string,数字映射为long。ignore_above忽略长度超过256字符串。 用于设置超过指定字符后,超出的部分不能被索引或者存储。

注意: 只要是需要查询的字符串类型的一定要使用

  1. “type”:“text”
  1. “analyzer”: “ik_max_word”
  1. “index”: true

其他不参与索引的配置

  1. “type”: “long”
  1. “index”: false

6.修改索引映射信息

Elasticsearch 并不支持修改mapping映射字段,无法直接修改,所以需要曲线救国。

原来的索引 index_01, 新索引index_02

  1. 先创建一个新索引,然后添加玩映射信息

PUT http://hadoop001:9200/index_02

  1. 将原来索引数据迁移到新索引中

POST http://hadoop001:9200/_reindex?slices=auto&refresh

请求体

{

  "source": {

    "index": "index_01",

    "size": 5000

  },

  "dest": {

    "index": "index_02",

    "version_type": "internal"

  }

}

source->index(原来的索引名称)

dest->index(新索引名称)

其他的配置不用动

  1. 删除原来的索引

DELETE http://hadoop001:9200/index_01

  1. 给新索引添加别名 ,别名的名称是原来索引的名称,这样就不会影响到程序

POST http://hadoop001:9200/_aliases

 

8.查询指定索引的详情

GET http://hadoop001:9200/索引名称/_mappings

示例

​​​​​​​​​

GET http://hadoop001:9200/index_1/_mappings

9.删除指定索引​​​​​​​

DELETE http://[LocalHost]:9200/索引名称

示例

DELETE http://hadoop001:9200/index_02

10.查询指定索引下全部数据

GET http://hadoop001:9200/索引名称/_search

示例

GET http://hadoop001:9200/index1/_search

 

11.清空索引下全部数据

POST http://hadoop001:9200/index1/_delete_by_query

请求体

{

  "query": {

    "match_all": {}

  }

}

 

12.文档基本操作

创建文档document(一条数据)

文档等同于数据库的1行, 在es7x必须通过{index}/_doc 来自动创建id,通过{index}/_doc/{id}指定文档的id

POST http://hadoop001:9200/index1/_doc/文档的id

示例

POST http://hadoop001:9200/index1/_doc/1

{

    "name":"胡",

    "age":"22"

}

12.1 查询指定索引下的指定文档

GET http://hadoop001:9200/index1/_doc/文档id

示例

GET http://hadoop001:9200/index1/_doc/1

 

12.2 删除指定索引下的指定文档

DELETE http://hadoop001:9200/index1/_doc/文档id

示例

DELETE http://hadoop001:9200/index1/_doc/1

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小狼躲藏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值