设为首页 收藏本站
查看: 853|回复: 0

[经验分享] Elasticsearch常用操作API

[复制链接]

尚未签到

发表于 2019-1-28 14:02:00 | 显示全部楼层 |阅读模式
  1. 查询所有的索引
[root@Server01 cx]# curl '10.0.0.5:9200/_cat/indices?v'
health status index    pri rep docs.count docs.deleted store.size pri.store.size
yellow open   customer   5   1          2            0      6.6kb          6.6kb
yellow open   bank       5   1       1000            0    442.1kb        442.1kb  

  2. 查询bank表中的所有数据
[root@Server01 cx]# curl '10.0.0.5:9200/bank/_search?q=*&pretty'
{
  "took" : 41,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 1000,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : "bank",
      "_type" : "account",
      "_id" : "25",
      "_score" : 1.0,
      "_source" : {
        "account_number" : 25,
        "balance" : 40540,
        "firstname" : "Virginia",
        "lastname" : "Ayala",
        "age" : 39,
        "gender" : "F",
        "address" : "171 Putnam Avenue",
        "employer" : "Filodyne",
        "email" : "virginiaayala@filodyne.com",
        "city" : "Nicholson",
        "state" : "PA"
      }
    }, {
      "_index" : "bank",
      "_type" : "account",
      "_id" : "44",
      "_score" : 1.0,
      "_source" : {
        "account_number" : 44,
        "balance" : 34487,
        "firstname" : "Aurelia",
        "lastname" : "Harding",
        "age" : 37,
        "gender" : "M",
        "address" : "502 Baycliff Terrace",
        "employer" : "Orbalix",
        "email" : "aureliaharding@orbalix.com",
        "city" : "Yardville",
        "state" : "DE"
      }
    }, {
      "_index" : "bank",
      "_type" : "account",
      "_id" : "99",
      "_score" : 1.0,
      "_source" : {
        "account_number" : 99,
        "balance" : 47159,
        "firstname" : "Ratliff",
        "lastname" : "Heath",
        "age" : 39,
        "gender" : "F",
        "address" : "806 Rockwell Place",
        "employer" : "Zappix",
        "email" : "ratliffheath@zappix.com",
        "city" : "Shaft",
        "state" : "ND"
      }
    }, {
      "_index" : "bank",
      "_type" : "account",
      "_id" : "119",
      "_score" : 1.0,
      "_source" : {
        "account_number" : 119,
        "balance" : 49222,
        "firstname" : "Laverne",
        "lastname" : "Johnson",
        "age" : 28,
        "gender" : "F",
        "address" : "302 Howard Place",
        "employer" : "Senmei",
        "email" : "lavernejohnson@senmei.com",
        "city" : "Herlong",
        "state" : "DC"
      }
    }, {
      "_index" : "bank",
      "_type" : "account",
      "_id" : "126",
      "_score" : 1.0,
      "_source" : {
        "account_number" : 126,
        "balance" : 3607,
        "firstname" : "Effie",
        "lastname" : "Gates",
        "age" : 39,
        "gender" : "F",
        "address" : "620 National Drive",
        "employer" : "Digitalus",
        "email" : "effiegates@digitalus.com",
        "city" : "Blodgett",
        "state" : "MD"
      }
    }, {
      "_index" : "bank",
      "_type" : "account",
      "_id" : "145",
      "_score" : 1.0,
      "_source" : {
        "account_number" : 145,
        "balance" : 47406,
        "firstname" : "Rowena",
        "lastname" : "Wilkinson",
        "age" : 32,
        "gender" : "M",
        "address" : "891 Elton Street",
        "employer" : "Asimiline",
        "email" : "rowenawilkinson@asimiline.com",
        "city" : "Ripley",
        "state" : "NH"
      }
    }, {
      "_index" : "bank",
      "_type" : "account",
      "_id" : "183",
      "_score" : 1.0,
      "_source" : {
        "account_number" : 183,
        "balance" : 14223,
        "firstname" : "Hudson",
        "lastname" : "English",
        "age" : 26,
        "gender" : "F",
        "address" : "823 Herkimer Place",
        "employer" : "Xinware",
        "email" : "hudsonenglish@xinware.com",
        "city" : "Robbins",
        "state" : "ND"
      }
    }, {
      "_index" : "bank",
      "_type" : "account",
      "_id" : "190",
      "_score" : 1.0,
      "_source" : {
        "account_number" : 190,
        "balance" : 3150,
        "firstname" : "Blake",
        "lastname" : "Davidson",
        "age" : 30,
        "gender" : "F",
        "address" : "636 Diamond Street",
        "employer" : "Quantasis",
        "email" : "blakedavidson@quantasis.com",
        "city" : "Crumpler",
        "state" : "KY"
      }
    }, {
      "_index" : "bank",
      "_type" : "account",
      "_id" : "208",
      "_score" : 1.0,
      "_source" : {
        "account_number" : 208,
        "balance" : 40760,
        "firstname" : "Garcia",
        "lastname" : "Hess",
        "age" : 26,
        "gender" : "F",
        "address" : "810 Nostrand Avenue",
        "employer" : "Quiltigen",
        "email" : "garciahess@quiltigen.com",
        "city" : "Brooktrails",
        "state" : "GA"
      }
    }, {
      "_index" : "bank",
      "_type" : "account",
      "_id" : "222",
      "_score" : 1.0,
      "_source" : {
        "account_number" : 222,
        "balance" : 14764,
        "firstname" : "Rachelle",
        "lastname" : "Rice",
        "age" : 36,
        "gender" : "M",
        "address" : "333 Narrows Avenue",
        "employer" : "Enaut",
        "email" : "rachellerice@enaut.com",
        "city" : "Wright",
        "state" : "AZ"
      }
    } ]
  }
}

  •   took –  Elasticsearch执行查询的毫秒响应时间
  •   timed_out – 是否超时
  •   _shards – 查询过的分片,包含成功的分片和失败的分片
  •   hits – 搜索结果
  •   hits.total – 符合搜索结果的记录数
  •   hits.hits – 默认显示前10条搜索结果
  •   _score and max_score - ignore these fields for now
  

  3. 另外一种查询全部结果的方法
curl -XPOST '10.0.0.5:9200/bank/_search?pretty' -d '
{
  "query": { "match_all": {} }
}'  

  4. 分页排序的检索例子
[root@Server01 cx]# curl -XPOST '10.0.0.5:9200/bank/_search?pretty' -d '
{
  "query": { "match_all": {} },
  "from": 10,
  "size": 3,
  "sort": { "balance": { "order": "desc" } }
}'
{
  "took" : 8,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 1000,
    "max_score" : null,
    "hits" : [ {
      "_index" : "bank",
      "_type" : "account",
      "_id" : "255",
      "_score" : null,
      "_source" : {
        "account_number" : 255,
        "balance" : 49339,
        "firstname" : "Iva",
        "lastname" : "Rivers",
        "age" : 38,
        "gender" : "M",
        "address" : "470 Rost Place",
        "employer" : "Mantrix",
        "email" : "ivarivers@mantrix.com",
        "city" : "Disautel",
        "state" : "MD"
      },
      "sort" : [ 49339 ]
    }, {
      "_index" : "bank",
      "_type" : "account",
      "_id" : "524",
      "_score" : null,
      "_source" : {
        "account_number" : 524,
        "balance" : 49334,
        "firstname" : "Salas",
        "lastname" : "Farley",
        "age" : 30,
        "gender" : "F",
        "address" : "499 Trucklemans Lane",
        "employer" : "Xumonk",
        "email" : "salasfarley@xumonk.com",
        "city" : "Noxen",
        "state" : "AL"
      },
      "sort" : [ 49334 ]
    }, {
      "_index" : "bank",
      "_type" : "account",
      "_id" : "751",
      "_score" : null,
      "_source" : {
        "account_number" : 751,
        "balance" : 49252,
        "firstname" : "Patrick",
        "lastname" : "Osborne",
        "age" : 23,
        "gender" : "M",
        "address" : "915 Prospect Avenue",
        "employer" : "Gynko",
        "email" : "patrickosborne@gynko.com",
        "city" : "Takilma",
        "state" : "MO"
      },
      "sort" : [ 49252 ]
    } ]
  }
}  

  5. 添加文档,如果id存在则更新文档
[root@Server01 data]# curl -XPUT '10.0.0.5:9200/customer/external/1?pretty' -d '
> {"name":"John Doe"}'
{
  "_index" : "customer",
  "_type" : "external",
  "_id" : "1",
  "_version" : 1,
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "created" : true
}
[root@Server01 data]# curl -XPUT '10.0.0.5:9200/customer/external/1?pretty' -d '
{"name":"Jane Doe"}'
{
  "_index" : "customer",
  "_type" : "external",
  "_id" : "1",
  "_version" : 2,
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "created" : false
}  

  6. 不指定Id时创建文档,可以发现自动生成一个随机Id
[root@Server01 data]# curl -XPOST '10.0.0.5:9200/customer/external?pretty' -d '{"name": "Jane Doe"}'
{
  "_index" : "customer",
  "_type" : "external",
  "_id" : "AVTh53KZ4Pj5B2ZQ2voK",
  "_version" : 1,
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "created" : true
}  

  7. 修改文档
[root@Server01 data]# curl -XPOST '10.0.0.5:9200/customer/external/2/_update?pretty' -d '{"doc":{"name":"favourite boy","age":18}}'
{
  "_index" : "customer",
  "_type" : "external",
  "_id" : "2",
  "_version" : 3,
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  }
}  

  8. 在开启javascript后,可以使用JS脚本更新文档
[root@Server01 data]# curl -XPOST '10.0.0.5:9200/customer/external/2/_update?pretty' -d '{"script":"ctx._source.age+=5"}'  

  9. 删除文档
[root@Server01 data]# curl -XDELETE '10.0.0.5:9200/customer/external/1?pretty'
{
  "found" : true,
  "_index" : "customer",
  "_type" : "external",
  "_id" : "1",
  "_version" : 4,
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  }
}  

  10. 批量更新文档
[root@Server01 data]# curl -XPOST '10.0.0.5:9200/customer/external/_bulk?pretty' -d '
{"index":{"_id":"1"}}
{"name": "John Doe" }
{"index":{"_id":"2"}}
{"name": "Jane Doe" }'
{
  "took" : 33,
  "errors" : false,
  "items" : [ {
    "index" : {
      "_index" : "customer",
      "_type" : "external",
      "_id" : "1",
      "_version" : 3,
      "_shards" : {
        "total" : 2,
        "successful" : 1,
        "failed" : 0
      },
      "status" : 200
    }
  } ]
}
[root@Server01 data]# curl -XPOST '10.0.0.5:9200/customer/external/_bulk?pretty' -d '
> {"update":{"_id":"1"}}
> {"doc": { "name": "John Doe becomes Jane Doe" } }
> {"delete":{"_id":"2"}}
> '
{
  "took" : 34,
  "errors" : false,
  "items" : [ {
    "update" : {
      "_index" : "customer",
      "_type" : "external",
      "_id" : "1",
      "_version" : 4,
      "_shards" : {
        "total" : 2,
        "successful" : 1,
        "failed" : 0
      },
      "status" : 200
    }
  }, {
    "delete" : {
      "_index" : "customer",
      "_type" : "external",
      "_id" : "2",
      "_version" : 5,
      "_shards" : {
        "total" : 2,
        "successful" : 1,
        "failed" : 0
      },
      "status" : 200,
      "found" : true
    }
  } ]
}  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-668781-1-1.html 上篇帖子: Elasticsearch集群的安装 下篇帖子: elasticsearch jdk 版本选择
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表