Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档
倒排索引
正排(正向)索引:
ID | content |
---|---|
01 | my name is zhangsan |
02 | my name is lisi |
倒排索引:
keyword | ID |
---|---|
name | 01,02 |
zhang | 01 |
创建索引
创建索引等同于创建数据库
PUT具有幂等性,再次相同数据增加会报错
查询索引&删除
GET 获取信息
GET /shopping
#获取所有索引得详细信息
GET /_cat/indices?v
#删除当前索引
DELETE /shopping
文档创建
POST非幂等性
#根据索引创建文档内容
POST /shopping/_doc
{
"名字": "张三",
"年龄": 30,
"职业": "工程师",
"邮箱": "zhangsan@example.com",
"地址": {
"国家": "中国",
"城市": "北京"
},
"爱好": ["阅读", "旅游"],
"已婚": true
}
#根据索引创建文档内容,自定义id属性
POST /shopping/_doc/1001
{
"名字": "张三",
"年龄": 30,
"职业": "工程师",
"邮箱": "zhangsan@example.com",
"地址": {
"国家": "中国",
"城市": "北京"
},
"爱好": ["阅读", "旅游"],
"已婚": true
}
查询主键&全查询
GET
#查询索引为shopping主键为1001得结果
GET /shopping/_doc/1001
#查询索引为shopping所有结果(会将创建时主键为1001和主键随机得信息都会列举出来)
GET /shopping/_search
全量、局部修改&删除
PUT全量
POST 局部
DELETE
#全量数据覆盖,修改年龄为32
PUT /shopping/_doc/1001
{
"名字": "张三",
"年龄": 32,
"职业": "工程师",
"邮箱": "zhangsan@example.com",
"地址": {
"国家": "中国",
"城市": "北京"
},
"爱好": ["阅读", "旅游"],
"已婚": true
}
#局部数据修改,修改年龄为33岁
POST /shopping/_update/1001
{
"doc": {
"年龄": 33
}
}
#删除索引主键为1001
DELETE /shopping/_doc/1001