doc 文档的增删改查

阳光穿透心脏的1/2处 2022-10-22 07:54 199阅读 0赞

文档的增删改查

新增文档

  1. PUT localhost:9200/nba/_doc/1
  2. {
  3. "name": "hadeng",
  4. "team_name": "勇士",
  5. "position": "得分后卫",
  6. "play_year": "10",
  7. "jerse_no": "13"
  8. }

新增自增id

使用POST,不能用PUT了

  1. POST localhost:9200/nba/_doc/1
  2. {
  3. "name": "hadeng",
  4. "team_name": "勇士",
  5. "position": "得分后卫",
  6. "play_year": "10",
  7. "jerse_no": "13"
  8. }

自动创建索引

当我们创建一个文档,但是对应索引不存在的时候,

可以自动创建索引, 这个能力需要打开。

  1. # 查看集群配置 查看auto_create_index
  2. # 不存在或者为True的时候,会自动创建索引
  3. GET http://localhost:9200/_cluster/settings
  4. # 修改
  5. PUT http://localhost:9200/_cluster/settings
  6. {
  7. "persistent": {
  8. "action.auto_create_index": "false"
  9. }
  10. }

指定操作

  1. # 当我们有id=1的文档的时候,此操作会修改文档
  2. PUT localhost:9200/nba/_doc/1
  3. {
  4. "name": "大胡子",
  5. "team_name": "勇士",
  6. "position": "得分后卫",
  7. "play_year": "10",
  8. "jerse_no": "13"
  9. }
  10. # 如果我们不想修改,只想创建,可以指定操作
  11. PUT localhost:9200/nba/_doc/1?op_type=create
  12. {
  13. "name":"哈登",
  14. "team_name":"火箭",
  15. "position":"得分后卫",
  16. "play_year":"10",
  17. "jerse_no":"13"
  18. }

查看文档

  1. # 查看指定ID文档
  2. GET localhost:9200/nba/_doc/1
  3. # 查看多个ID文档
  4. POST localhost:9200/_mget
  5. {
  6. "docs" : [
  7. {
  8. "_index" : "nba",
  9. "_type" : "_doc",
  10. "_id" : "1"
  11. },
  12. {
  13. "_index" : "nba",
  14. "_type" : "_doc",
  15. "_id" : "2"
  16. }
  17. ]
  18. }
  19. # URL指定索引
  20. POST localhost:9200/nba/_mget
  21. {
  22. "docs": [
  23. {
  24. "_type": "_doc",
  25. "_id": "1"
  26. },
  27. {
  28. "_type": "_doc",
  29. "_id": "2"
  30. }
  31. ]
  32. }
  33. # URL指定索引和类型
  34. POST localhost:9200/nba/_doc/_mget
  35. {
  36. "docs": [
  37. {
  38. "_id": "1"
  39. },
  40. {
  41. "_id": "2"
  42. }
  43. ]
  44. }
  45. # 最终简便
  46. GET localhost:9200/nba/_doc/_mget
  47. {
  48. "ids" : ["1", "2"]
  49. }

修改文档

  1. POST localhost:9200/nba/_update/1
  2. {
  3. "doc": {
  4. "name": "哈登",
  5. "team_name": "勇士",
  6. "position": "控卫",
  7. "play_year": "10",
  8. "jerse_no": "13"
  9. }
  10. }

向_source新增一个字段

  1. # 新增字段
  2. POST localhost:9200/nba/_update/1
  3. {
  4. "script": "ctx._source.age = 18"
  5. }
  6. # 删除
  7. POST localhost:9200/nba/_update/1
  8. {
  9. "script": "ctx._source.remove(\"age\")"
  10. }
  11. # 更新, 获取到原值,并+4
  12. POST localhost:9200/nba/_update/1
  13. {
  14. "script": {
  15. "source": "ctx._source.age += params.age",
  16. "params": {
  17. "age": 4
  18. }
  19. }
  20. }
  21. # 存在则只需更新逻辑,不存在则执行upsert
  22. POST localhost:9200/nba/_update/3
  23. {
  24. "script": {
  25. "source": "ctx._source.allstar += params.allstar",
  26. "params": {
  27. "allstar": 4
  28. }
  29. },
  30. "upsert": {
  31. "allstar": 1
  32. }
  33. }

删除文档

  1. DELETE localhost:9200/nba/_doc/1

发表评论

表情:
评论列表 (有 0 条评论,199人围观)

还没有评论,来说两句吧...

相关阅读