ES常用命令

Posted gyll

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES常用命令相关的知识,希望对你有一定的参考价值。

1.快速检查集群的健康状况

      GET /_cat/health?v  

Green:每个索引的primary shard和replica shard都是active状态

yellow:每个索引的primary shard都是active状态,但是部分replica shard不是active状态,处于不可用状态。

red:不是所有索引的primary shard都是active状态,部分索引有数据丢失。

2.快速查询集群中有哪些索引

      GET /_cat/indices?v

3.简单的索引操作

创建索引:PUT  /test_index?pretty

删除索引:DELETE /test_index?pretty

4.商品的CRUD操作

1)新增

PUT /index/type/id

{}

2)查询

GET /index/type/id

3) 修改

POST /index/type/id/_update

4) 删除

DELETE /index/type/id

搜索(6):

1、query string search

搜索全部商品:GET /index/type/_search

搜索商品名称中包含yaogao的商品,而且按照售价降序排序:GET /index/type/_search?q=name:yagao&sort=price:desc

适用于临时的在命令行使用一些工具,比如curl,快速的发出请求,来检索想要的信息,但是如果查询请求很复杂,很难构建在生产环境中,几乎很少使用query string search

 2、query DSL

GET /index/type/_search

{

     "query":{ "match_all":{}}

}

GET /index/type/_search

{

    "query":{"match":{"name":"yaogao"}},

    "sort":[{"price":"desc"}]

}

分页查询

GET /index/type/_search

{

    "query":{"match_all":{}},

     "from":1,

     "size":2

}

GET /index/type/_search

{

    "query":{"match_all":{}},

     "_source":["name","price"]

}

3、query filter(筛选,过滤)

GET /index/type/_search

{

     "query":{

            "bool":{

                  "must":{"match":{"yagao"}},

                  "filter":{"range":{"price":{"gt":25}}}

                        }

                     }

}

4、full-text search(全文检索)

GET /index/type/_search

     "query":{

                   "match":{"producer":"yagao producer" }   }

}

5、pharse search(短语搜索)

跟全文检索相对应,全文搜索只要搜索包含一个单词即可

短语搜索,要匹配整个短语

GET /index/type/_search

     "query":{

                   "match_pharse":{"producer":"yagao producer" }   }

}

6、helight search(高亮显示)

GET /index/type/_search

{    

      "query":{"match_pharse":{"producer":"yagao producer"}},

       "highlight":{"fileds":{"producer":{}}}

}

}

聚合分析:

1、按年级分级

GET /index/type/_search

{

    "aggs":{"group_by_grade":{

            "terms":{"filed":"grade"}

           }}

}

2、每个年级的平均值

GET test_index/liuliTest/_search
{
"size": 0,
"aggs":{
"group_by_grade":{
                  "terms": {
                                "field": "grade"
                           },
                   "aggs":{
                         "agg_price":{
                               "avg":{"field":"score"}
                               }
                              }
                          }
                  }
}

3、按平均值降序

GET test_index/liuliTest/_search
{
           "size": 0,
           "aggs":{
            "group_by_grade":{
                   "terms": {
                      "field": "grade",
                      "order": {
                           "agg_price": "desc"
                                   }
                                },
                 "aggs":{
                      "agg_price":{
                           "avg":{"field":"score"}
                                          }
                             }
                 }
                    }
}

4、按成绩区间进行分组,再按年级分组,再求每组平均分。

GET test_index/liuliTest/_search
{
              "size": 0,
             "aggs":{
                   "group_by_score":{
                        "range": {
                            "field": "score",
                            "ranges":[
                               {"from":0,"to":80},
                               {"from":80,"to":90},
                               {"from":90,"to":100}]
                                     },
                    "aggs":{
                           "group_by_grade":{
                                    "terms":{"field":"grade"},
                                     "aggs":{
                                            "score_avg":{
                                                         "avg":{
                                                               "field":"score"}        

                                                                 }
                                                 }
                                            }
                                         }
                                     }
                                }
                            }

5、批量查询

GET _mget
{
"docs":[
    {
          "_index":"test_index",
          "_type":"liuliTest",
          "_id":"1"
    },{
         "_index":"test_index",
         "_type":"liuliTest",
         "_id":"2"
       }
]
}

GET test_index/_mget
{
     "docs":[
    {
        "_type":"liuliTest",
         "_id":"1"
     },{
        "_type":"liuliTest",
        "_id":"2"
         }]
}

批量插入:

 

以上是关于ES常用命令的主要内容,如果未能解决你的问题,请参考以下文章

es集群问题排查常用命令参数解析

ES常用命令

ES常用命令

es集群安装配置及常用命令

es常用curl命令

es常用curl命令