0


Elasticsearch CRUD RestAPI

ElasticSearch 的安装 (7.16.1 版本)Kibana DevTool 的是使用创建索引,删除索引数据写入,更新,删除数据修改等操作。

  • 😄博主:程序员一灯,一个老菜鸟,哈哈哈哈

  • 🚌一个人可以走的很快,一群人可以走的很远🇨🇳

  • 🎉点赞评论收藏关注== 养成习惯(一键四连)📝
  • 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝
  • 🙏作者水平有限,欢迎各位大佬指点,相互学习进步!😆

🏮一、基本CRUD

🥃1.1、新增文档

PUT ${index_name}

PUT schools

🍸1)新增文档,并指定id字段(replace)

该模式下,若指定id对应的文档存在,则删除源文档后并写入新文档,并且version版本加1。

  1. PUT ${index_name}/_doc/1
  2. {
  3. ...
  4. }
  5. //多次执行后,version一直递增
  6. POST schools/_doc/1
  7. {"name":"Central School","description":"CBSE Affiliation","street":"Nagan","city":"paprola","state":"HP","zip":"176115","location":[31.8955385,76.8380405],"fees":2000,"tags":["Senior Secondary","beautiful campus"],"rating":"3.5"}

🍸2)新增文档,并指定ID字段(insert)

该模式下,若指定id对应的文档存在,则直接返回报错

  1. PUT ${index_name}/_create/1
  2. {
  3. ...
  4. }
  5. 或者
  6. PUT ${index_name}/_create/1?op_type=create
  7. {
  8. ...
  9. }
  1. PUT bluepig/_create/1
  2. {
  3. "name":"八戒1号猪",
  4. "date":"2021年12月23日11:04:39"
  5. }
  6. PUT bluepig/_create/2?op_type=create
  7. {
  8. "name":"八戒2号猪",
  9. "date":"2021年12月23日11:06:02"
  10. }
  1. 执行查询
  2. GET bluepig/_search
  3. 返回
  4. {
  5. "took" : 0,
  6. "timed_out" : false,
  7. "_shards" : {
  8. "total" : 1,
  9. "successful" : 1,
  10. "skipped" : 0,
  11. "failed" : 0
  12. },
  13. "hits" : {
  14. "total" : {
  15. "value" : 2,
  16. "relation" : "eq"
  17. },
  18. "max_score" : 1.0,
  19. "hits" : [
  20. {
  21. "_index" : "bluepig",
  22. "_type" : "_doc",
  23. "_id" : "1",
  24. "_score" : 1.0,
  25. "_source" : {
  26. "name" : "八戒1号猪",
  27. "date" : "2021年12月23日11:04:39"
  28. }
  29. },
  30. {
  31. "_index" : "bluepig",
  32. "_type" : "_doc",
  33. "_id" : "2",
  34. "_score" : 1.0,
  35. "_source" : {
  36. "name" : "八戒2号猪",
  37. "date" : "2021年12月23日11:06:02"
  38. }
  39. }
  40. ]
  41. }
  42. }

🍸3)新增文档,不指定ID字段,系统自动生产ID

  1. POST ${index_name}/_doc
  2. {
  3. ...
  4. }
  1. POST zhangsan/_doc
  2. {
  3. "name":"张三",
  4. "age":"25"
  5. }
  6. get zhangsan/_search
  7. {
  8. "took" : 0,
  9. "timed_out" : false,
  10. "_shards" : {
  11. "total" : 1,
  12. "successful" : 1,
  13. "skipped" : 0,
  14. "failed" : 0
  15. },
  16. "hits" : {
  17. "total" : {
  18. "value" : 1,
  19. "relation" : "eq"
  20. },
  21. "max_score" : 1.0,
  22. "hits" : [
  23. {
  24. "_index" : "zhangsan",
  25. "_type" : "_doc",
  26. "_id" : "8XpD5X0BStHCKgTnOEeI",
  27. "_score" : 1.0,
  28. "_source" : {
  29. "name" : "张三",
  30. "age" : "25"
  31. }
  32. }
  33. ]
  34. }
  35. }

🥃1.2、查询文档

🍸1)GET查询指定ID文档

  1. GET /${index_name}/_doc/3
  1. 执行查询
  2. GET /bluepig/_doc/2
  3. 返回
  4. {
  5. "_index" : "bluepig",
  6. "_type" : "_doc",
  7. "_id" : "2",
  8. "_version" : 1,
  9. "_seq_no" : 1,
  10. "_primary_term" : 1,
  11. "found" : true,
  12. "_source" : {
  13. "name" : "八戒2号猪",
  14. "date" : "2021年12月23日11:06:02"
  15. }
  16. }

🍸2)search api查询满足条件的文档

  1. 查询索引下全部文档
  2. GET /${index_name}/_search
  3. 查询满足指定条件全部文档
  4. GET /#{index_name}/_search
  5. {
  6. "query": {
  7. "match": {
  8. ...
  9. }
  10. }
  11. }
  1. GET /bluepig/_search
  2. {
  3. "query": {
  4. "match": {
  5. "name": "八戒"
  6. }
  7. }
  8. }

🍸3) 查看索引的基本配置信息

GET /${index_name}

GET schools

🍸4) 查看索引的基本状态信息

GET _cat/indices/${index_name}

GET _cat/indices/schools

🥃1.3、更新文档

🍸1)更新指定ID文档,存在则更新,不存在则新增(也是新增文档的一种)

  1. PUT ${index_name}/_doc/1
  2. {
  3. ...
  4. }
  1. PUT schools2/_doc/11
  2. {"name":"Central School","description":"CBSE Affiliation","street":"Nagan","city":"paprola","state":"HP","zip":"176115","location":[31.8955385,76.8380405],"fees":2000,"tags":["Senior Secondary","beautiful campus"],"rating":"3.5"}

🍸2)更新指定ID文档,更新文档必须存在,否则报错

  1. //限制操作类型是更新,那么如果不存在则更新不了,报错
  2. POST /${index_name}/_update/1
  3. {
  4. "doc": {
  5. "name":"aa",
  6. "age":12
  7. }
  8. }

🥃1.4、删除文档

🍸1)删除指定ID文档

DELETE /${index_name}/_doc/1

🍸2)删除满足条件查询文档

  1. POST /${index_name}/_delete_by_query
  2. {
  3. "query":{
  4. "match":{
  5. ...
  6. }
  7. }
  8. }
  1. POST /schools/_delete_by_query
  2. {
  3. "query":{
  4. "match":{
  5. "_id":2
  6. }
  7. }
  8. }

🏮二、bulk api 批量

支持在一次api中对不同的索引进行操作
支持create index update delete

  1. //1、创建索引users name=aa
  2. //2、删除索引id=2
  3. //3、创建索引users id=2
  4. //4、更新索引 新增了个字段
  5. POST _bulk
  6. {"index":{"_index":"users","_id":"1"}}
  7. {"name":"aa"}
  8. {"delete":{"_index":"users","_id":"2"}}
  9. {"create":{"_index":"users","_id":"2"}}
  10. {"name":"bb"}
  11. {"update":{"_id":"1","_index":"users"}}
  12. {"doc":{"auto_inc":"11"}}
  13. #批量操作
  14. #1.删除5号
  15. #新增8号
  16. #更新2号 name为2号
  17. POST _bulk
  18. {"delete":{"_index":"person1","_id":"5"}}
  19. {"create":{"_index":"person1","_id":"8"}}
  20. {"name":"八号","age":18,"address":"北京"}
  21. {"update":{"_index":"person1","_id":"2"}}
  22. {"doc":{"name":"2号"}}
  23. POST schools_gov/_bulk
  24. {"index":{"_index":"schools_gov","_id":"1"}}
  25. {"name":"Model School","description":"CBSE Affiliation","street":"silk city","city":"Hyderabad","state":"AP","zip":"500030","location":[17.3903703,78.4752129],"fees":200,"tags":["Senior Secondary","beautiful campus"],"rating":"3"}
  26. {"index":{"_index":"schools_gov","_id":"2"}}
  27. {"name":"Government School","description":"State Board Affiliation","street":"Hinjewadi","city":"Pune","state":"MH","zip":"411057","location":[18.599752,73.6821995],"fees":500,"tags":["Great Sports"],"rating":"4"}

🏮三、CRUD的练习例子

GET movies/_search

查询movies的数据

GET movies/_count

查询movies的总数

GET _cat/indices

查看所有的索引

GET movies/_doc/24

查询id为24的数据

POST users/_doc/1

POST users/_doc/1

{

"firstname": "will",

"lastname": "smith"

}

#添加id为1的文档 ,如果没有指定id,ES会自动生成

POST users/_create/2

{

"firstname": "will",

"lastname": "smith"

}

#创建id为2的文档,如果索引中已存在相同id,会报错;

POST users/_update/2

{

"doc": {

"age": 30

}

}

在id位2的文档中添加一个age属性,修改结构

DELETE users/_doc/2

删除id为2的文档

DELETE users

删除 users 索引

PUT users/_doc/1

{

"firstname": "Jack",

"lastname": "ma"

}

创建或者修改文档

PUT users/_create/2

{

"firstname": "will",

"lastname": "smith"

}

批量查询多个指定的id的数据,也可以批量查询

POST users/_bulk

{"index":{"_id":3}}

{"firstname":"a","lastname":"A"}

{"index":{"_id":2}}

{"firstname":"a","lastname":"A"}

{"index":{"_id":3}}

{"firstname":"a","lastname":"A"}

{"index":{"_id":4}}

{"firstname":"a","lastname":"A"}

{"index":{"_id":5}}

{"firstname":"a","lastname":"A"}

批量插入数据


本文转载自: https://blog.csdn.net/zhou9898/article/details/122102268
版权归原作者 程序员一灯 所有, 如有侵权,请联系我们删除。

“Elasticsearch CRUD RestAPI”的评论:

还没有评论