自我学习的,将练习的kibana的操作整理记录下。
##查看索引下所有数据
post /shopping/_search
## 查看所有数据
get /_cat/indices?v
##创建索引
put /shopping
##获取索引
get /shopping
##查看文档时,需要指明文档的唯一性标识,类似于 MySQL 中数据的主键查询
get /shopping/_doc/1
##说明:因为7版本之后,ES不再支持一个索引(index)可以创建多个类型(type),所以cmcc/后边不再需要写入类型名称,而是统一使用_create代替即可,同样的,查询操作使用_doc代替即可
##文档创建 请求必须是post!put会报错
post /shopping/_create/3
{
"title":"大米手机",
"category":"大米",
"images":"http://www.gulixueyuan.com/xm.jpg",
"price":4999.00
}
## 不指定id,es会自动分配一个随机id
post /shopping/_doc
{
"title":"小米手机",
"category":"小米",
"images":"http://www.gulixueyuan.com/xm.jpg",
"price":3999.00
}
##全量修改 若id不存在,则会新增
post /shopping/_doc/1
{
"title":"锤子手机",
"category":"锤子",
"images":"http://www.gulixueyuan.com/xm.jpg",
"price":2000.00
}
##局部修改 注意:局部为_update,若为_doc 则全量修改,局部json格式加“doc”,不然会报错
post /shopping/_update/1
{
"doc": {
"category":"锤子罗永浩"
}
}
# 删除一个文档不会立即从磁盘上移除,它只是被标记成已删除(逻辑删除)。
delete /shopping/_doc/1
####### 查询 #######
# URL带参查询
post /shopping/_search?q=category:锤子
# 请求体带参查询
post /shopping/_search
{
"query":{
"match":{
"category":"锤子"
}
}
}
# 带请求体方式的查找所有内容
post /shopping/_search
{
"query":{
"match_all":{}
}
}
# 查询指定字段
post /shopping/_search
{
"query":{
"match_all":{}
},
"_source":["title"]
}
# 分页查询
post /shopping/_search
{
"query":{
"match_all":{}
},
"from":0,
"size":2
}
# 查询排序
post /shopping/_search
{
"query":{
"match_all":{}
},
"sort":{
"price":{
"order":"desc"
}
}
}
###### 多条件查询 & 范围查询 #####
# 多条件查询 注意: (must相当于数据库的&&!!!)
post /shopping/_search
{
"query":{
"bool":{
"must":[{
"match":{
"category":"小米"
}
},{
"match":{
"price":3999.00
}
}]
}
}
}
# 注意: (should相当于数据库的|| !!!)
post /shopping/_search
{
"query":{
"bool":{
"should":[{
"match":{
"category":"小米"
}
},{
"match":{
"category":"华为"
}
}]
}
}
}
# 范围查询
post /shopping/_search
{
"query":{
"bool":{
"should":[{
"match":{
"category":"小米"
}
},{
"match":{
"category":"华为"
}
}],
"filter":{
"range":{
"price":{
"gt":3000
}
}
}
}
}
}
######### 全文检索 & 完全匹配 & 高亮查询 ###########
# 全文检索
post /shopping/_search
{
"query":{
"match":{
"category" : "小华"
}
}
}
# 完全匹配
post /shopping/_search
{
"query":{
"match_phrase":{
"category" : "华"
}
}
}
# 高亮查询 查出来的字段会高亮显示
post /shopping/_search
{
"query":{
"match_phrase":{
"category" : "为"
}
},
"highlight":{
"fields":{
"category":{}
}
}
}
############# 聚合查询 ##############
# 按price字段分组;
get /shopping/_search
{
"aggs":{//聚合操作
"price_group":{//名称,随意起名
"terms":{//分组
"field":"price"//分组字段
}
}
}
}
## 上面返回结果会附带原始数据的。若不想要不附带原始数据的结果,向 ES 服务器发 GET请求
get /shopping/_search
{
"aggs":{
"price_group":{
"terms":{
"field":"price"
}
}
},
"size":0
}
# 若想对所有手机价格求平均值。
get /shopping/_search
{
"aggs":{
"price_avg":{//名称,随意起名
"avg":{//求平均
"field":"price"
}
}
},
"size":0
}
###### 映射关系 ######
# 先创建一个索引
put /user
#创建映射
put /user/_mapping
{
"properties": {
"name":{
"type": "text",
"index": true
},
"sex":{
"type": "keyword",
"index": true
},
"tel":{
"type": "keyword",
"index": false
}
}
}
# 查询映射
get /user/_mapping
# 增加数据
put /user/_create/1
{
"name":"小米",
"sex":"男的",
"tel":"1111"
}
get /user/_search
{
"query":{
"match":{
"name":"小"
}
}
}
#这时查不到数据
get /user/_search
{
"query":{
"match":{
"sex":"男"
}
}
}
#找不想要的结果,只因创建映射时"sex"的类型为"keyword"。"sex"只能完全为”男的“,才能得出原数据。
get /user/_search
{
"query":{
"match":{
"sex":"男的"
}
}
}



