elasticsearch学习(五)文档CRUD
目录
- 上一篇文章
- 文档CRUD
- 创建索引
- 查看索引字段mapping
- 更新mapping
- 删除索引
- 测试索引是否存在
- 查看索引字段结构
- 删除索引
- 文档命令
- 创建文档
- Index
- Create
- Create与Index的区别
- 更新文档
- 删除文档
- 查询文档
- 简单查询语法
上一篇文章
elasticsearch学习(四)kibana安装
https://blog.csdn.net/github_36801273/article/details/151076329?spm=1011.2124.3001.6209
文档CRUD
创建索引
PUT /my-index
{"mappings": {"properties": {"testFieldA": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"testFieldB": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}}
}
mapping的部分不是必须的,可以通过先创建索引,然后写入数据的方式自动生成mapping
查看索引字段mapping
GET /my-index/_mapping{"my-index": {"mappings": {"properties": {"testFieldA": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"testFieldB": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}}}}}
}
更新mapping
POST /my-index/_mapping
{"properties": {"testFieldC": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"testFieldB": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 512}}}}
}
只能新增和更新字段,不能删除字段,删除字段用reindex
删除索引
DELETE /my-index
测试索引是否存在
HEAD /my-index
查看索引字段结构
GET /my-index/_mapping
删除索引
DELETE /my-index
文档命令
创建文档
Index
如果ID不存在,则创建新的,否则删除旧的再创建新的,增加版本号
POST /my-index/_doc
{"id": "park_rocky-mountain","title": "Rocky Mountain","description": "Bisected north to south by the Continental Divide, this portion of the Rockies has ecosystems varying from over 150 riparian lakes to montane and subalpine forests to treeless alpine tundra."
}
Create
// 不指定ID(系统自动生成)
POST /my-index/_doc
{"testFieldA":"testA1","testFieldB":"testB1"
}// 指定ID
POST /my-index/_doc/2
{"testFieldA":"testA2","testFieldB":"testB2"
}
Create与Index的区别
create的文档ID如果已存在,会报失败
index的文档ID不存在,会新建,否则会把原来的删除了再增加
更新文档
POST /my-index/_update/2
{"doc":{"testFieldA":"updateTestA2"}
}
删除文档
DELETE /my-index/_doc/2
查询文档
支持两种方式:
1 url查询,在url路径中使用查询参数
2 用DSL(Query Domain Specific Language)
简单查询语法
api | 作用 |
---|---|
/_search | 查询集群上所有索引 |
/{index_name}/_search | 查询指定索引 |
/{index_name1},{index_name2},{…}/_search | 查询多个指定索引 |
/{index_prex}*/_search | 查询以{index_prex}为开头的索引 |
// 指定ID查询
GET /my-index/_doc/2// 查询全量数据
GET /my-index/_search// 查询my开头的索引数据
GET /my*/_search// URL查询
GET /my-index/_search?q=testFieldA:updateTestA2// DSL查询
GET /my-index/_search -H 'Content-Type:application/json' -d
{"query":{"match":{"testFieldA":"updateTestA2"}}
}