目录
Restful风格操作索引
elasticsearch采用Rest风格API,因此其API就是一次http请求,你可以用任何工具发起http请求
1.创建索引的请求格式
- 请求方式: PUT
- 请求路径: /索引库名
- 请求参数: json格式
- 存储库的设置:settings
-
number_of_shards:分片数量
-
number_of_replicas:副本数量
-
- 存储库的设置:settings
示例
PUT /heima
{
"settings": {
"number_of_shards": 1
, "number_of_replicas": 0
}
}
2.查看索引
GET /索引库名
我们也可以使用*来查询所有索引库配置
GET *
3.删除索引
DELETE /索引库名
4.新增数据
通过POST请求,可以向一个已经存在的索引库中添加数据。
- 语法
POST /索引库名/类型名
{
"key":"value"
}
- 示例
POST /heima/goods/
{
"title":"小米手机",
"images":"http://image.leyou.com/12479122.jpg",
"price":2699.00
}
- 自定义id的语法
POST /索引库名/类型/id值
{
...
}
- 示例
POST /heima/goods/2
{
"title":"大米手机",
"images":"http://image.leyou.com/12479122.jpg",
"price":2899.00
}
- 智能映射
在新增数据时你不需要给索引库设置任何mapping映射,它也可以根据你输入的数据来判断类型,动态添加数据映射。例如我们输入
再通过命令查看映射
GET /heima/_mapping
就可以看到系统自动给添加的类型
5.修改数据
把刚才新增的请求方式改为PUT,就是修改了。不过修改必须指定id,如果没指定或者指定的id不存在就会执行新增操作,示例
无论是全部更新还是局部更新,实际上的操作是先从旧的文档中检索JSON,然后修改这条JSON,删除旧文档,创建文档!
PUT /heima/goods/3
{
"title":"超大米手机",
"images":"http://image.leyou.com/12479122.jpg",
"price":3899.00,
"stock": 100,
"saleable":true
}
注意:最新版本的ES支持使用POST /索引名/类型名/id/_update来修改文档内容的指定内容
6.删除数据
删除使用DELETE请求,同样,需要根据id进行删除:
DELETE /索引库名/类型名/id值
注意,删除一个文档时,ES其实只是把这条文档标记为已删除。当你在之后添加更多索引的时候才会将磁盘上要删除的内容进行清理。