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常用命令的主要内容,如果未能解决你的问题,请参考以下文章