Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档

倒排索引

正排(正向)索引:

ID content
01 my name is zhangsan
02 my name is lisi

倒排索引:

keyword ID
name 01,02
zhang 01

创建索引

创建索引等同于创建数据库
PUT具有幂等性,再次相同数据增加会报错

upload successful

查询索引&删除

GET 获取信息
GET /shopping

upload successful

1
2
3
4
#获取所有索引得详细信息
GET /_cat/indices?v
#删除当前索引
DELETE /shopping

文档创建

POST非幂等性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#根据索引创建文档内容
POST /shopping/_doc
{
"名字": "张三",
"年龄": 30,
"职业": "工程师",
"邮箱": "zhangsan@example.com",
"地址": {
"国家": "中国",
"城市": "北京"
},
"爱好": ["阅读", "旅游"],
"已婚": true
}

upload successful

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#根据索引创建文档内容,自定义id属性
POST /shopping/_doc/1001
{
"名字": "张三",
"年龄": 30,
"职业": "工程师",
"邮箱": "zhangsan@example.com",
"地址": {
"国家": "中国",
"城市": "北京"
},
"爱好": ["阅读", "旅游"],
"已婚": true
}

upload successful

查询主键&全查询

GET

1
2
3
4
#查询索引为shopping主键为1001得结果
GET /shopping/_doc/1001
#查询索引为shopping所有结果(会将创建时主键为1001和主键随机得信息都会列举出来)
GET /shopping/_search

全量、局部修改&删除

PUT全量
POST 局部
DELETE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#全量数据覆盖,修改年龄为32
PUT /shopping/_doc/1001
{
"名字": "张三",
"年龄": 32,
"职业": "工程师",
"邮箱": "zhangsan@example.com",
"地址": {
"国家": "中国",
"城市": "北京"
},
"爱好": ["阅读", "旅游"],
"已婚": true
}

#局部数据修改,修改年龄为33岁
POST /shopping/_update/1001
{
"doc": {
"年龄": 33
}
}

#删除索引主键为1001
DELETE /shopping/_doc/1001

upload successful