我们通过Kibana的Dev Tools来充当Elasticsearch客户端来操作ES
PUT /ems/ 创建索引
DELETE /ems 删除索引
DELETE /* 删除所有索引
GET /_cat/indices?v 查看索引信息;
健康情况 状态 索引名 索引id 分片数 副本数 文档数量 删除文档数量 文档大小 主分片文档大小
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
# 1.创建索引
- PUT /索引名 ====> PUT /products
- 注意:
1.ES中索引健康转态 red(索引不可用) 、yellow(索引可用,存在风险)、green(健康)
2.默认ES在创建索引时回为索引创建1个副本索引和1个分片索引
# 2.创建索引 进行索引分片配置
- PUT /products
{
"settings": {
"number_of_shards": 1, #指定主分片的数量
"number_of_replicas": 0 #指定副本分片的数量
}
}
# 查询索引
- GET /_cat/indices?v
# 删除索引
- DELETE /索引名 =====> DELETE /products
- DELETE /* `*代表通配符,代表所有索引`
只有text类型才会进行分词,其他类型都不会分词
字符串类型: keyword 关键字 关键词 、text 一段文本
数字类型:integer, long
小数类型:float, double
布尔类型:boolean
日期类型:date
# 1.创建索引&映射
PUT /products
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"properties": {
"title":{
"type": "keyword"
},
"price":{
"type": "double"
},
"created_at":{
"type": "date"
},
"description":{
"type": "text"
}
}
}
}
说明: ES中支持字段类型非常丰富,如:text、keyword、integer、long、ip 等。更多参见https://www.elastic.co/guide/en/elasticsearch/reference/7.15/mapping-types.html
# 1.查看某个索引的映射
- GET /索引名/_mapping =====> GET /products/_mapping
PUT /ems/_doc/1 #/索引/类型/id #在es7.x类型为_doc, 已经舍弃了自定义type
{
"name":"赵小六",
"age":23,
"bir":"2012-12-12"
}
GET /ems/_doc/1
返回结果:
{
"_index": "ems",
"_type": "_doc",
"_id": "1",
"_version": 1,
"found": true,
"_source": {
"name": "赵小六",
"age": 23,
"bir": "2012-12-12"
}
}
DELETE /ems/_doc/1
{
"_index": "ems",
"_type": "_doc",
"_id": "1",
"_version": 2,
"result": "deleted", #删除成功
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 1,
"_primary_term": 1
}
1.第一种方式 更新原有的数据
POST /ems/_update/1
{
"doc":{
"name":"xiaohei"
}
}
2.第二种方式 添加新的数据
# post可以不指定id创建文档,put方式必须指定id
POST /ems/_update/1
{
"name":"xiaohei",
"age":11,
"dpet":"你好部门" #在mapping中会默认创建dpet信息
}
3.第三种方式 在原来数据基础上更新
POST /ems/_update/1
{
"script": "ctx._source.age += 5"
}
ES的使用语法风格为:
<REST Verb> /<Index>/_doc/<ID>
REST操作 /索引/_doc/文档id
_bulik(批量操作) 添加(index) 删除(delete) 更新(update)
1. 批量往索引中添加两个文档
PUT /test_es/_bulk
{"index":{"_id":"12"}}
{"name": "John Doe10","age":10,"bir":"2012-12-10"}
{"index":{"_id":"13"}}
{"name": "Jane Doe11","age":11,"bir":"2012-12-11"}
2. 更新文档同时删除文档
POST /dangdang/_bulk
{"update":{"_id":"1"}}
{"doc":{"name":"lisi"}}
{"delete":{"_id":2}}
{"index":{}}
{"name":"xxx","age":23}
注意:批量时不会因为一个失败而全部失败,而是继续执行后续操作,批量在返回时按照执行的状态开始返回