1、检查ES是否启动成功
GET ?pretty
2、检查集群的健康状态
GET /_cat/health?v
GET _cluster/health
3、查看集群中有哪些索引
GET /_cat/indices?v
4、简单的索引操作
创建索引:PUT /test_index?pretty
删除索引:DELETE /test_index?pretty
在 7.0 以及之后的版本中 Type 被废弃了。一个 index 中只有一个默认的 type,即
_doc
。ES 的Type 被废弃后,库表合一,Index 既可以被认为对应 MySQL 的 Database,也可以认为对应 table。
5、简单的CRUD操作
5.1 创建文档
第一种格式:
PUT /index/_doc/id ##POST方法也适用
{
"json数据"
}
第二种格式:(防止覆盖)
创建文档时,防止覆盖id已存在的文档,可以通过_create加以限制,如下
PUT /index/_create/id
{
"json数据"
}
第三种格式:
##不指定文档ID,需要使用POST方法,而不是PUT方法。
POST /index/_doc
{
"json数据"
}
创建示例01(第一种格式)
PUT /ecommerce/_doc/1
{
"name": "gaolujie yagao",
"desc": "gaoxiao meibai",
"price": 30,
"producer": "gaolujie producer",
"tags": [
"meibai",
"fangzhu"
]
}
创建示例02(第二种格式)
PUT /ecommerce/_create/2
{
"name": "jiajieshi yagao",
"desc": "youxiao fangzhu",
"price": 25,
"producer": "jiajieshi producer",
"tags": [
"fangzhu"
]
}
## 该文档如果存在,添加失败。
创建示例03(第三种格式)
POST /ecommerce/_doc
{
"name": "zhonghua yagao",
"desc": "caoben zhiwu",
"price": 40,
"producer": "zhonghua producer",
"tags": [
"qingxin"
]
}
5.2 查询文档
查询格式
GET /index/type/id
查询示例
GET /ecommerce/_doc/1
查询返回的值
{
"_index" : "ecommerce",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"_source" : {
"name" : "gaolujie yagao",
"desc" : "gaoxiao meibai",
"price" : 30,
"producer" : "gaolujie producer",
"tags" : [
"meibai",
"fangzhu"
]
}
}
5.3 更新文档
文档更细
更新示例
PUT /ecommerce/_doc/1
{
"name": "jiaqiangban gaolujie yagao",
"desc": "gaoxiao meibai",
"price": 40,
"producer": "gaolujie producer",
"tags": [
"meibai",
"fangzhu"
]
}
再次查询,检查是否更新
# GET /index/type/id
{
"_index" : "ecommerce",
"_type" : "_doc",
"_id" : "1",
"_version" : 2,
"_seq_no" : 2,
"_primary_term" : 1,
"found" : true,
"_source" : {
"name" : "jiaqiangban gaolujie yagao",
"desc" : "gaoxiao meibai",
"price" : 40,
"producer" : "gaolujie producer",
"tags" : [
"meibai",
"fangzhu"
]
}
}
注意的小点
ElasticSearch实际上并没有在底层执行覆盖更新。而是先删除旧文档,再添加一条新文档。
更新字段
通过脚本更新制定字段,其中ctx是脚本语言中的一个执行对象,先获取_source,再修改price字段
POST ecommerce/_update/1
{
"script": {
"source": "ctx._source.price=10"
}
}
添加字段
与修改字段类似
POST ecommerce/_update/1
{
"script": {
"source": "ctx._source.add=34"
}
}
删除字段
POST ecommerce/_update/1
{
"script": {
"source":"ctx._source.remove(\"add\")"
}
}
5.4 删除文档
示例
DELETE /ecommerce/_doc/4
成功执行后的返回的结果
{
"_index" : "ecommerce",
"_type" : "_doc",
"_id" : "4",
"_version" : 2,
"result" : "deleted",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 7,
"_primary_term" : 1
}
6、判定文档是否存在
HEAD index/_doc/1
示例
HEAD ecommerce/_doc/1
存在的话返回 200 - OK
网友评论