心心失意 发表于 2019-1-28 14:02:00

Elasticsearch常用操作API

  1. 查询所有的索引
# 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表中的所有数据
# 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. 分页排序的检索例子
# 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存在则更新文档
# 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
}
# 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
# 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. 修改文档
# 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脚本更新文档
# curl -XPOST '10.0.0.5:9200/customer/external/2/_update?pretty' -d '{"script":"ctx._source.age+=5"}'  

  9. 删除文档
# 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. 批量更新文档
# 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
    }
} ]
}
# 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]
查看完整版本: Elasticsearch常用操作API