温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Elasticsearch常用操作API

发布时间:2020-08-25 13:45:22 来源:网络 阅读:2080 作者:genuinecx 栏目:开发技术

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" : "AVTh63KZ4Pj5B2ZQ2voK",
  "_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
    }
  } ]
}



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI