打开kibana的console界面
创建文档-PUT请求
添加索引名为nju,类型为user,id为1的文档数据:
PUT /nju/user/1
{
"name":"nanjing",
"age":23,
"desc":"salary-2500",
"tags":["lol","qq"]
}
在head可视化界面中可以看到新建成功
获取文档数据-GET请求
GET /nju/user/1
执行结果:
#! Deprecation: [types removal] Specifying types in document get requests is deprecated, use the /{index}/_doc/{id} endpoint instead.
{
"_index" : "nju",
"_type" : "user",
"_id" : "1",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"_source" : {
"name" : "nanjing",
"age" : 23,
"desc" : "salary-2500",
"tags" : [
"lol",
"qq"
]
}
}
更新文档-PUT/POST请求
1.PUT请求更新
PUT /nju/user/3
{
"name":"baoying",
"age":20,
"desc":"salary-1000",
"tags":["bask","qq"]
}
结果:
{
"_index" : "nju",
"_type" : "user",
"_id" : "3",
"_version" : 2,
"result" : "updated",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 5,
"_primary_term" : 1
}
version自增表示版本变更,result显示成功更新
2.POST请求更新
POST /nju/user/3/_update
{
"doc":{
"name":"yangzhou"
}
}
成功将/nju/user/3的文档数据的name字段属性修改为yangzhou
如果漏掉/_update会导致doc中的数据直接覆盖原文档
复杂条件查询
索引中的文档如图:
查询/nju/user中名为baoying的文档
GET /nju/user/_search?q=name:软件
效果等同于
GET /nju/user/_search
{
"query":{
"match": {
"name": "软件"
}
}
}
结果为:
{
"took" : 10,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 1.4185338,
"hits" : [
{
"_index" : "nju",
"_type" : "user",
"_id" : "4",
"_score" : 1.4185338,
"_source" : {
"name" : "南京大学软件学院",
"age" : 23,
"desc" : "salary-2500",
"tags" : [
"lol",
"qq"
]
}
}
]
}
}
用
GET /nju/user/_search
{
"query":{
"match": {
"name": "软件"
}
},
"_source":["name","age"]
}
添加 “_source”:[“name”,“age”]后表示只显示这两个字段;
添加"sort":[ { "age":{ "order":"desc" } } ]
增加查询排序功能;
添加"from":0, "size":1
增加分页功能;