前言
本章讲解ElasticSearch的RestfulAPI的相关知识
方法
1.概念
ES为我们提供了非常丰富的RestfulAPI,包含索引的创建与删除,文档的创建与删除等等。接下来我们一起来看一下。
2.索引的增加与删除
1)索引的新增
语法:PUT /{索引名称}
参数:索引设置的json串
{
"settings": {
"number_of_shards": {分片数},
"number_of_replicas": {副本数}
}
}
范例:创建一个名称为test的索引,分片数为2,副本数为0
通过header插件我们发现创建成功:
2)索引的删除
语法:DELETE /{索引名称}
范例:删除名称为test的索引
通过header插件我们发现删除成功:
3.文档的增删改查
1)文档的创建
语法:POST /{索引}/{索引类型}/{文档id}
参数:文档数据的json串
{
"属性1": "值1",
"属性2": "值2",
"属性3": "值3 ",
"属性4": "值4"
........
}
范例:创建用户类型的文档
我们再次观察header插件:
2)文档的更新
注意:在ES中,原则上是不允许更新数据的,我们只能采取覆盖的方法实现!
语法:PUT /{索引}/{索引类型}/{文档id}
参数:文档数据的json串
{
"属性1": "值1",
"属性2": "值2",
"属性3": "值3 ",
"属性4": "值4"
........
}
范例:修改id为1001的用户类型的文档
我们再次观察header插件:
注意:上面的操作为全覆盖操作,如果字段发生缺失或增加,会造成不好的结果,因此我们推荐使用局部更新
局部更新操作:
语法:POST /{索引}/{索引类型}/{文档id}/_update
参数:doc作为键的数据json串
{
"doc": {
"属性1": "值1",
"属性2": "值2"
.....
}
}
范例:修改id为1001的用户类型的文档的年龄为34
我们再次观察header插件:
3)文档的搜索
根据id来搜索文档:
语法:GET /{索引}/{索引类型}/{文档id}
范例:搜索id为1001的文档
我们会得到如下反馈:
搜索相关类型的所有数据:
语法:GET /{索引}/{索引类型}/_search
范例:搜索类型为user的文档
我们会得到如下反馈:
使用关键字搜索:
语法:GET /{索引}/{索引类型}/_search?q=属性:属性值
范例:搜索类型为user的年龄为34的文档
我们会得到如下反馈: