1、索引库操作
1.1 创建索引库
# 创建索引库
PUT /索引库名
PUT /zhang
{
"mappings": {
"properties": {
"name":{
"type": "text",
"analyzer": "ik_max_word"
},
"address":{
"type": "keyword",
"index": "false"
}
}
}
}
1.2 查看索引库
# 查看索引库
GET /索引库名
GET /zhang
1.3 修改索引库
索引库和mapping一旦创建无法修改,但是可以添加新的字段
PUT /索引库名/_mapping
PUT /zhang/_mapping
{
"properties": {
"age": {
"type": "integer",
"index": false
}
}
}
1.4 删除索引库
DELETE /索引库名
DELETE /zhang
2、文档操作
2.1 创建文档
POST /索引库名/_doc/文档id
以上述索引库zhang为例:
POST /zhang/_doc/1
{
"name":"张三",
"age": 30,
"address":"上海市"
}
2.2 查看文档
GET /索引库名/_doc/文档id
GET /zhang/_doc/1
2.3 删除文档
DELETE /索引库名/_doc/文档id
DELETE /zhang/_doc/1
2.4 修改文档
方式一: 全量修改,会删除旧文档,添加新文档
POST /zhang/_doc/1
{
"name":"李四",
"age": 29,
"address":"上海市"
}
方式二: 增量修改,修改指定字段值
POST /索引库名/_update/文档id
{
"doc": {
"字段名": "新的值",
}
}
POST /zhang/_doc/1
{
"doc":{
"name":"王五"
}
}
3、总结
当我们向ES中插入文档时,如果文档中字段没有对应的mapping,ES会帮助我们字段设置mapping,规则如下:
| Json类型 | Elasticsearch类型 |
|---|---|
| 字符串 | 日期格式字符串:mapping为date类型 普通字符串:mapping为text类型,并添加keyword类型子字段 |
| 布尔值 | boolean |
| 浮点数 | float |
| 整数 | long |
| 对象嵌套 | object,并添加properties |
| 数组 | 由数组中的第一个非空类型决定 |
| 空值 | 忽略 |
- 插入文档时,es会检查文档中的字段是否有mapping,如果没有则按照默认mapping规则来创建索引。
- 如果默认mapping规则不符合你的需求,一定要自己设置字段mapping