1.创建索引:PUT /test_index
2.# 查询 ES 实例中现有的所有索引
GET _cat/indices
3.# 查询新创建的索引
GET /test_index
4.删除索引
DELETE demo_index
5.指定 ID 创建文档,使用 PUT
其中的 doc 就是之前提到过的 type,在 6.0 之后已经废弃了,全部写成 doc 即可
PUT /test_index/doc/1
{
"username": "es",
"age": 12
}
6.不指定 ID ,使用 POST
此时会随机生成一个 ID
POST /test_index/doc
{
"username": "elk",
"age": 12
}
7.查询 文档
# 指定 ID 查询
GET /test_index/doc/1
GET /test_index/doc/_search
例子:
curl -X GET "localhost:9200/my_index/_search" -H 'Content-Type: application/json' -d'
{
"from" : 0, #from 表示从第几条开始取,size 表示最多取多少条。from默认值是0,size默认值是10
"size" : 10,
"sort" : [ #依次按照 post_date升序、user升序、name降序、age降序、分数升序排序
{ "post_date" : {"order" : "asc"}},
"user",
{ "name" : "desc" },
{ "age" : "desc" },
"_score"
],
"query" : { #查询条件字段user=kimchy 12<age<200
"term" : { "user" : "kimchy" },
"range": {
"age": {
"gt": "12",
"lt": 200
}
}
}
}
mode选项用来控制基于数组中的那个值来对文档进行排序。mode选项的可选值有:
min :最小值
max :最大值
sum :用所有值的和来作为排序值
avg :用所有值的平均值作为排序值
median :用所有值的中间值作为排序值
8.删除文档
DELETE /test_index/doc/1
9.批量操作
ES 提供了批量操作的 _bulk 和 _mget API ,允许我们批量的对文档进行 CRUD 的操作,具体使用如下:
首先指明 action 动作和要操作的文档,如果是创建或者修改,后面在跟对应的字段数据。操作的 action 有四种
index: 创建文档,若存在,则报错
create: 创建文档,若存在,仍然创建,覆盖已有数据
delete: 删除文档
update: 更新文档
POST _bulk
# 创建
{"index":{"_index":"test_index","_type":"doc","_id":"3"}}
{"username":"alfred","age":20}
# 创建
{"create":{"_index":"test_index","_type":"doc","_id":"3"}}
{"username":"alfred","age":20}
# 删除
{"delete":{"_index":"test_index","_type":"doc","_id":"1"}}
# 更新
{"update":{"_id":"3","_index":"test_index","_type":"doc"}}
{"doc":{"age":"20"}}
# 批量查询
GET /_mget
{
"docs": [
{
"_index": "test_index",
"_type": "doc",
"_id": 1
},
{
"_index": "test_index",
"_type": "doc",
"_id": 3
}
]
}
10.查询用到的参数: