成都网站建设设计

将想法与焦点和您一起共享

Elasticsearch常用操作API-创新互联

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
    }
  } ]
}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


标题名称:Elasticsearch常用操作API-创新互联
网站URL:http://chengdu.cdxwcx.cn/article/cspiic.html