ES-命令

节点

#查看节点信息
curl -XGET 'http://127.0.0.1:9200/_cat/nodes?v'

#查看所有节点信息
curl -XGET 'http://127.0.0.1:9200/_nodes?pretty=true'

#查看指定节点的信息  
curl -XGET 'http://127.0.0.1:9200/_nodes/nodeName?pretty=true'


索引

#查看所有索引
curl -XGET 'http://localhost:9200/_cat/indices?v'
#创建索引
curl -XPUT "http://localhost:9200/test_index"
#创建索引,指定分片和副本的数量
curl -H "Content-Type: application/json" -XPUT "http://localhost:9200/test_index?pretty" -d'
{
  "settings": {
    "number_of_shards": 2,
    "number_of_replicas": 1
  }
}'

#创建索引(test_index)、创建类型(product)、指定mapping的数据
curl -H "Content-Type: application/json" -XPUT "http://localhost:9200/test_index?pretty" -d' 
{
  "mappings": {
    "product" : {
      "properties": {
        "id" : {
          "type": "text",
          "index": "false"
        },
        "userName" : {
          "type": "text",
          "index": "true"
        }
      }
    }
  }
}'

#在已创建的索引下添加类型的mapping
curl -H "Content-Type: application/json" -XPUT 'http://localhost:9200/test_index/person/_mapping?pretty' -d '{ 
 "person" : {
    "properties" : {
      "date" : {
        "type" : "long"
      },
      "name" : {
        "type" : "text",
        "index" : "false"
      },
      "status" : {
        "type" : "integer"
      },
      "type" : {
        "type" : "integer"
      }
    }
  }
}'
#获取索引信息
curl -XGET "http://localhost:9200/test_index?pretty"
#查看索引的统计信息
curl -XGET "http://localhost:9200/test_index/_stats?pretty"
#获取索引的mappings
curl -XGET "http://localhost:9200/test_index/_mappings?pretty"
#删除索引
curl -XDELETE "http://localhost:9200/test_index"

文档

#插入数据
curl -H "Content-Type: application/json"  -XPOST 'http://localhost:9200/test_index/person/?pretty' -d '{"date":11222, "name": "abc", "status": 1,"type":134}'

#查询索引中的全部内容
curl -XGET "http://localhost:9200/test_index/_search?pretty"
#查询某个type的内容
curl -XGET "http://localhost:9200/test_index/person/_search?pretty"

#根据文档的id查询文档,如果需要查询多个字段使用逗号进行隔开,不指定就是显示全部字段
curl -XGET "http://localhost:9200/test_index/person/zbyJjXYB2UzVbYB2ykZa?_source=name,type&pretty"

#根据条件进行简单查询
curl -XGET "http://localhost:9200/test_index/person/_search?q=name:&pretty"

#更新文档内容
curl -H "Content-Type: application/json"  -XPOST 'http://localhost:9200/test_index/person/0LyYjXYB2UzVbYB2qUZi/_update?pretty' -d '{"doc":{ "name": "wxg111", "status": 1,"type":134}}'

#删除文档内容
curl -XDELETE  "http://localhost:9200/test_index/person/zryOjXYB2UzVbYB2AkbI?&pretty"

DSL

#查询索引下所有文档
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"query": { "match_all": {} }}'

#查询索引下所有文档,并返回第一个文档
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"query": { "match_all": {} },"size":1}'

#匹配所有并返回第1到10
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"query": { "match_all": {} },"from": 0,"size": 10}'

#根据属性降序排序(size未指定默认为10)
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"query": { "match_all": {} },"sort": {"status": { "order": "desc" }}}'

#返回name和status这2个fields(_source里),相当于sql:SELECT name, status FROM....
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"query": { "match_all": {} },"_source": ["name", "status"]}'

#返回status为1的,相当于sql的WHERE
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d '{"query": { "match": { "status": 1 } }}'

#返回type=77 && status=1的文档
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d  '{"query": {"bool": {"must": [{ "match": { "type": 77 } },{ "match": { "status": 1 } }]}}}'

#返回type=77 || status=1的文档
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d  '{"query": {"bool": {"should": [{ "match": { "type": 77 } },{ "match": { "status": 1 } }]}}}'

#返回type=77 非 status=1的文档
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d  '{"query": {"bool": {"must_not": [{ "match": { "type": 77 } },{ "match": { "status": 1 } }]}}}'

#返回type是134但status不是2的
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d  '{"query": {"bool": { "must": [{ "match": { "type": 134 } }],"must_not": [{ "match": { "status": 2 } }]}}}'

# 相当于sql: SELECT COUNT() from bank GROUP BY state ORDER BY COUNT() DESC。
#「size=0」是设置不显示search hit
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d   '{"size": 0,"aggs": {"group_by_state": {"terms": {"field": "status"}}}}'

#按state分组并计算(组)平均balance(默认返回前10个按state的COUNT的降序(DESC)排)
curl -H "Content-Type: application/json" -XPOST 'http://localhost:9200/test_index/_search?pretty' -d   '{"size": 0,"aggs": {"group_by_state": {"terms": {"field": "status"},"aggs": {"average_balance": {"avg": {"field": "type"}}}}}}'


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值