使用curl操作elasticsearch的restapi

ElasticSearch 提供了一系列的Restful风格的API,我们可以使用curl命令进行使用,也可以在kibana中使用。

本文介绍使用curl操作es

一般情况下

GET 获取数据 POST 添加数据 PUT 添加数据 DELETE 删除数据

注意事项

如果es需要认证,则在curl后添加-u name:'pwd'认证即可
如果响应结果需要美化成json,则在url后拼接?pretty即可

1 集群常用命令

1.1 查看版本

curl -XGET http://127.0.0.1:9200/

1.2 查看集群状态

这里在url后面添加了pretty是为了让其在控制台上输出的结果是一个优美的json格式

curl  -XGET  http://127.0.0.1:9200/_cluster/state?pretty

2 索引库常用命令

2.1 查看所有索引

curl  http://127.0.0.1:9200/_cat/indices?v

2.2 创建索引(不指定映射和setting)

curl -XPUT "http://127.0.0.1:9200/索引名"

2.3 创建索引(指定映射和setting)

curl -d 指定json即可
我们的索引映射配置:

{
  "settings": {
    "index.blocks.read_only_allow_delete": "false",
    "index.max_result_window": "10000000",
    "number_of_replicas": "0",
    "number_of_shards": "1"
  },
  "mappings": {
      "properties": {
        "targetContent": {
          "type": "text"
        },
        "sourceContent": {
          "type": "text"
        },
        "sourceLanguageId": {
          "type": "long"
        },
        "realmCode": {
          "type": "long"
        },
        "createTime": {
          "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis",
          "type": "date"
        },
        "corpusScore": {
          "type": "float"
        },
        "id": {
          "type": "long"
        },
        "targetLanguageId": {
          "type": "long"
        }
      
    }
  }
}

通过在线转义将我们的json转义,使用如下命令即可

curl -XPUT "http://127.0.0.1:9200/索引名" -H "Content-Type: application/json" -d "{\"settings\":{\"index.blocks.read_only_allow_delete\":\"false\",\"index.max_result_window\":\"10000000\",\"number_of_replicas\":\"0\",\"number_of_shards\":\"1\"},\"mappings\":{\"properties\":{\"targetContent\":{\"type\":\"text\"},\"sourceContent\":{\"type\":\"text\"},\"sourceLanguageId\":{\"type\":\"long\"},\"realmCode\":{\"type\":\"long\"},\"createTime\":{\"format\":\"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis\",\"type\":\"date\"},\"corpusScore\":{\"type\":\"float\"},\"id\":{\"type\":\"long\"},\"targetLanguageId\":{\"type\":\"long\"}}}}"

2.3 删除索引

curl -XDELETE http://127.0.0.1:9200/索引名

3 文档常用命令

3.1 创建文档

# ip/索引库名/文档类型(默认是_doc)/id/  -d 文档内容
# id可以忽略,ES会自动生成id,如果id存在,那么就是更新数据,字段可以增加
curl -XPOST "http://127.0.0.1:9200/索引库名/_doc/1" -H "Content-Type: application/json" -d "对应数据的json"

3.2 修改文档

# 修改id为1的数据
curl -XPOST "http://127.0.0.1:9200/索引库名/_doc/1" -H "Content-Type: application/json" -d "对应数据的json"

3.3 删除文档

删除id为1的数据

curl -XDELETE "http://127.0.0.1:9200/索引库名/_doc/1"

4 查询命令

ES最主要的功能就是查询文档。但是一般情况下我们的查询操作都是在kibana中进行,因为kibana可以为我们提供提示,非常方便,但是在curl情况下,如何操作呢?我们只需要在kibana中写好查询语句,再稍微改造一下即可。

比如在kibana中,查询18号语料库的全部数据,语句如下:

POST corpus_details_18/_search
{
 "query": {
   "match_all": {}
 }
}

那么我们只需要通过curl执行post命令,然后-d添加请求体即可,注意要通过-H将请求体指定为json -H 'Content-Type: application/json' ,改造后的请求如下

curl -XPOST "http://127.0.0.1:9200/corpus_details_18/_search?pretty " -H "Content-Type: application/json" -d "{\"query\":{\"match_all\":{}}}"

所以,其他各种复杂查询都可以使用这种方式进行操作了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L-960

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值