1、索引的操作
1、创建索引
对ES的操作其实就是发送一个restful请求,kibana中在DevTools中进行ES操作
创建索引时需要注意ES的版本,不同版本的ES创建索引的语句略有差别,会导致失败
如下创建一个名为people的索引,settings,一些设置,mappings字段映射
PUT people
{
"settings":{
"number_of_shards":3,
"number_of_replicas":1
},
"mappings":{
"man":{
"properties":{
"name":{
"type":"text"
},
"country":{
"type":"keyword"
},
"age":{
"type":"integer"
},
"date":{
"type":"date",
"format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
}
}
}
我的版本是7.0之前的老版本,需要指定索引类型,所以需要带上,如果是7.0之后的可以用下方语句
PUT people1
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"name": {
"type": "text"
},
"country": {
"type": "keyword"
},
"age": {
"type": "integer"
},
"date": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
}
}
索引创建成功
2、查询索引信息
GET /people
3、删除索引
DELETE /people
2、数据操作
有了索引以后,就相当于有了表,然后就可以对表进行增、删、改、查数据。
2、1 添加数据
- PUT /索引名/类型名/文档id:创建一个指定id的文档
- POST /索引名/类型名: 不指定ID插入时会自动生成,需要使用POST请求
以下三种方式请求是正确的:
put /test_1/test/1
{
"id":1,
"name":"小明",
"age":20,
"desc":"三好学生",
"depName":"中学部"
}
post /test_1/test
{
"id":2,
"name":"小红",
"age":22,
"desc":"三好学生干部",
"depName":"小学部"
}
post /test_1/test/3
{
"id":3,
"name":"小张",
"age":18,
"desc":"优秀干部",
"depName":"大学部"
}
put请求后必现跟文档id,否则报错
2、2修改数据
通过继续提交PUT覆盖原来的值,需要带文档id,不带报错
POST请求不加文档id和_update,表示的是新增数据
添加了文档id报错
2、3查询数据
GET /索引名称/类型名称/文档id 根据id查询单条数据
查询数据不存在时:
2、4删除数据
删除数据是逻辑删除
3、复杂查询
1、查询所有(默认返回结果是分页的,只返回了第一页10条)
或
2、带条件查询
只查询想要的字段_source指定
3、分页查询
from 第几页,size每页数量
4、排序
5、多条件查询&范围查询