1. 程式人生 > >ES常用命令

ES常用命令

一個 update prim 降序排序 highlight 想要 rms 插入 名稱

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常用命令