欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > elasticsearch的文档管理

elasticsearch的文档管理

2024/11/30 18:55:49 来源:https://blog.csdn.net/qq_73797346/article/details/144001442  浏览:    关键词:elasticsearch的文档管理

2 json数据入门

json数据类型
基础数据类型
  • 字符串,只要用双引号包裹的都是字符串类型。“嘻嘻”,“文勇”,“2024”

  • 数字型,2024,3.1415926

  • 布尔型,true 和 false

  • 空值,null

高级数据类型
  • 数组,

    • 扁平化写法:[“文勇”,“zhiyong”,true,2024,null]

    • 漂亮输出写法:

      ["文勇","zhiyong",true,2024,null
      ]
      
  • 对象:

    • 扁平化写法:{“name”: “韩雯童”,“hobby”: [“睡觉”,“美女”,“上课”]}

    • 漂亮输出:

      {"name": "韩雯童","hobby": ["睡觉","美女","上课"]
      }
      
json的高级数据类型嵌套
{"school": "zhiyong18","class": "zhiyong","student": [{"name": "马蔷","hobby": ["打台球","看美女"]},{"name": "孙县伟","hobby": ["打游戏","唱跳rap","篮球"]}]
}
{"school": "zhiyong18",  // "school" 是一个字符串"class": "zhiyong",     // "class" 是一个字符串"student": [            // "student" 是一个数组{"name": "马蔷",      // 第一个学生的名字"hobby": [          // 第一个学生的兴趣爱好是一个数组"打台球",          // 第一个兴趣爱好"看美女"           // 第二个兴趣爱好]},{"name": "孙县伟",    // 第二个学生的名字"hobby": [          // 第二个学生的兴趣爱好是一个数组"打游戏",          // 第一个兴趣爱好"唱跳rap",         // 第二个兴趣爱好"篮球"             // 第三个兴趣爱好]}]
}

文档的管理

文档的创建
文档基本创建

1.文档的创建(推荐的方式),提示:若文档不存在则默认会创建一条索引

POST 10.0.0.92:9200/first-document/doc{"name": "韩雯童","hobby": ["睡觉","美女","上课"]
}

返回结果为201

{"_index": "first-document","_type": "doc","_id": "h4EVK5MBQU0FP-mFMNTI","_version": 1,"result": "created","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 0,"_primary_term": 1
}
往索引写入数据时指定文档id

说明:建议不要指定文档ID,在不知道文档ID的情况下可能导致ID冲突,

POST 10.0.0.92:9200/first-document/doc/202407101700002{"school": "wzy666","class": "wzyclass","student": [{"name": "马蔷","hobby": ["打台球","看美女"]},{"name": "孙县伟","hobby": ["打游戏","唱跳rap","篮球"]}]
}
文档的批量创建

批量创建文档的好处:

  • 减少网络传输,直接减少TCP握手次数

1.批量创建3条文档,注意:json数据最后一行必须是空行

POST 10.0.0.91:9200/_bulk{ "index" : { "_index" : "first-document"} }
{"name": "韩小童","hobby": ["睡觉","美女","上课"]}
{ "index" : { "_index" : "first-document"} }
{"name": "王鹏鹏","hobby": ["钓鱼","摸泥鳅","打扑克"]}
{ "index" : { "_index" : "first-document"} }
{"name": "黄峰锋","hobby": ["cosplay二次元","喝枸杞","吃羊腰"]}
文档内容的查看
查看所有的文档

方式:GET 10.0.0.91:9200/索引名称/_search

输出:

{"took": 8,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 4,"relation": "eq"},"max_score": 1.0,"hits": [{"_index": "first-document","_type": "doc","_id": "h4EVK5MBQU0FP-mFMNTI","_score": 1.0,"_source": {"name": "韩雯童","hobby": ["睡觉","美女","上课"]}},{"_index": "first-document","_type": "doc","_id": "202407101700001","_score": 1.0,"_source": {"name": "二狗","hobby": ["吃喝","钓鱼","划水"]}},{"_index": "first-document","_type": "doc","_id": "iYEoK5MBQU0FP-mFJNSF","_score": 1.0,"_source": {"name": "马超","hobby": ["骑马","打猎","逛公园"]}},{"_index": "first-document","_type": "doc","_id": "123456789123","_score": 1.0,"_source": {"name": "1马超","hobby": ["1马","1猎","1公园"]}}]}
}
查看指定的文档

不带索引的全部查看

方式:GET 10.0.0.91:9200/索引名称/文档ID

GET 10.0.0.93:9200/first-document/doc/123456789123

输出结果:

{"_index": "first-document","_type": "doc","_id": "123456789123","_version": 1,"_seq_no": 3,"_primary_term": 1,"found": true,"_source": {"name": "1马超","hobby": ["1马","1猎","1公园"]}
}
DSL语句模糊查询数据

需求:查找包含 的数据

POST 10.0.0.93:9200/first-document/_search{"query": {"match": {"name": "韩"}}
}

查询结果:

{"took": 47,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 1,"relation": "eq"},"max_score": 1.1129161,"hits": [{"_index": "first-document","_type": "doc","_id": "h4EVK5MBQU0FP-mFMNTI","_score": 1.1129161,"_source": {"name": "韩雯童","hobby": ["睡觉","美女","上课"]}}]}
}
文档的批量查看

根据索引名称和多个文档ID查询数据

POST 10.0.0.93:9200/_mget{"docs": [{"_index": "first-document","_id": "202407101700001"},{"_index": "first-document","_id": "dxxbK5MBDakapW2yA3oo"}]
}

输出结果:

{"docs": [{"_index": "first-document","_type": "doc","_id": "202407101700001","_version": 1,"_seq_no": 1,"_primary_term": 1,"found": true,"_source": {"name": "二狗","hobby": ["吃喝","钓鱼","划水"]}},{"_index": "first-document","_type": "doc","_id": "dxxbK5MBDakapW2yA3oo","_version": 1,"_seq_no": 8,"_primary_term": 1,"found": true,"_source": {"name": "黄峰锋","hobby": ["cosplay二次元","喝枸杞","吃羊腰"]}}]
}
文档内容的修改
文档的单个修改

1.把文档id为123456789中的name有1马超改为一马超

POST 10.0.0.93:9200/zhiyong18-zhiyong/doc/202407101700001/_update{"doc":{"name" : "一马超"}
}

输出结果:

{"_index": "first-document","_type": "doc","_id": "123456789123","_version": 2,"result": "updated","_shards": {"total": 2,"successful": 2,"failed": 0},"_seq_no": 4,"_primary_term": 1
}

2.查询数据验证是否修改

GET 10.0.0.93:9200/first-document/doc/123456789123
{"_index": "first-document","_type": "doc","_id": "123456789123","_version": 2,"_seq_no": 4,"_primary_term": 1,"found": true,"_source": {"name": "一马超","hobby": ["1马","1猎","1公园"]}
}
文档的批量修改

一次操作2个文档。换行提示

POST 10.0.0.93:9200/_bulk{ "update" : { "_index" : "first-document","_id" : "202407101700001"} }
{ "doc" : {"age" : 10, "hobby": ["洗脚脚MoreUpdate","按摩Moreupdate","上二楼Moreupdate"]} }
{ "update" : { "_index" : "first-document","_id" : "dxxbK5MBDakapW2yA3oo"} }
{ "doc" : {"age" : 12, "hobby": ["批量修改后的hobby","批量修改后的age","MoreUpdate"]} }
文档的删除
单条文档的删除

1.删除文档first-document中id号为123456789123的文档

DELETE 10.0.0.93:9200/first-document/doc/123456789123

执行结果:

{"_index": "first-document","_type": "doc","_id": "123456789123","_version": 3,"result": "deleted","_shards": {"total": 2,"successful": 2,"failed": 0},"_seq_no": 5,"_primary_term": 1
}

2.再次查看这条文档就查不到了

查询结果:

{"_index": "first-document","_type": "doc","_id": "123456789123","found": false
}

批量删除

POST 10.0.0.93:9200/_bulk

{ "delete" : { "_index" : "classroom06", "_id" : "tn0XnZABmNKdkfhcgdw7" } }
{ "delete" : { "_index" : "classroom06", "_id" : "tH0XnZABmNKdkfhcgdw6" } }
# 空行
多个文档的删除

根据2个文档ID,删除这2个文档。注意底部换行

POST 10.0.0.92:9200/_bulk{ "delete" : { "_index" : "first-document", "_id" : "202407101700001" } }
{ "delete" : { "_index" : "first-document", "_id" : "dxxbK5MBDakapW2yA3oo" } }
DSL语句简单上手

1.写入30条关于笔记本的数据

POST 10.0.0.91:9200/_bulk{ "index" : { "_index" : "notebook" } }
{ "brand": "火影", "price": 3999, "color": "黑色", "memory": "16G", "storage": "512G" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "机械革命", "price": 4999, "color": "白色", "memory": "32G", "storage": "1T" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "华硕", "price": 8999, "color": "灰色", "memory": "64G", "storage": "512G" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "惠普", "price": 3999, "color": "白色", "memory": "16G", "storage": "1T" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "机械革命", "price": 8999, "color": "黑色", "memory": "32G", "storage": "1T" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "火影", "price": 4999, "color": "灰色", "memory": "16G", "storage": "512G" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "华硕", "price": 3999, "color": "黑色", "memory": "64G", "storage": "1T" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "惠普", "price": 4999, "color": "白色", "memory": "32G", "storage": "512G" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "机械革命", "price": 3999, "color": "黑色", "memory": "16G", "storage": "512G" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "火影", "price": 8999, "color": "白色", "memory": "64G", "storage": "1T" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "华硕", "price": 4999, "color": "灰色", "memory": "32G", "storage": "512G" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "惠普", "price": 3999, "color": "灰色", "memory": "16G", "storage": "1T" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "机械革命", "price": 8999, "color": "黑色", "memory": "64G", "storage": "512G" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "火影", "price": 4999, "color": "白色", "memory": "32G", "storage": "512G" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "华硕", "price": 3999, "color": "灰色", "memory": "16G", "storage": "512G" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "惠普", "price": 4999, "color": "黑色", "memory": "32G", "storage": "1T" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "机械革命", "price": 3999, "color": "灰色", "memory": "16G", "storage": "512G" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "火影", "price": 8999, "color": "黑色", "memory": "64G", "storage": "1T" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "华硕", "price": 4999, "color": "白色", "memory": "32G", "storage": "512G" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "惠普", "price": 8999, "color": "灰色", "memory": "64G", "storage": "512G" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "机械革命", "price": 3999, "color": "白色", "memory": "16G", "storage": "1T" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "火影", "price": 4999, "color": "黑色", "memory": "32G", "storage": "1T" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "华硕", "price": 8999, "color": "黑色", "memory": "64G", "storage": "1T" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "惠普", "price": 3999, "color": "白色", "memory": "16G", "storage": "512G" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "机械革命", "price": 4999, "color": "灰色", "memory": "32G", "storage": "1T" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "火影", "price": 8999, "color": "白色", "memory": "64G", "storage": "512G" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "华硕", "price": 4999, "color": "黑色", "memory": "32G", "storage": "1T" }
{ "index" : { "_index" : "notebook" } }
{ "brand": "惠普", "price": 8999, "color": "黑色", "memory": "64G", "storage": "512G" }

2.根据筛选条件内存32G,查询出最贵的笔记本是哪个

GET 10.0.0.91:9200/notebook/_search{"query": {"match": {"memory": "32G"}},"sort": {"price": {"order": "desc"}},"_source": ["brand","price","color","memory","storage"],"from": "0","size": 1
}
  • query,匹配内存32G
  • sort desc,按价格降降序
  • _source,显示源数据
  • from,截断输出,只显示1个

3.输出结果为

{"took": 9,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 10,"relation": "eq"},"max_score": null,"hits": [{"_index": "notebook","_type": "_doc","_id": "kIGZK5MBQU0FP-mF5NRt","_score": null,"_source": {"memory": "32G","color": "黑色","price": 8999,"storage": "1T","brand": "机械革命"},"sort": [8999]}]}
}

可以发现DSL的查询语句写起来还是比较痛苦的

**补充:**最便宜购物商品的怎么查询?换成升序即可

GET 10.0.0.93:9200/shopping/_search
{"query": {"match": {"group": 1}},"sort": {"price": {"order": "asc"}},"_source": ["title","price","producer","type","group","item"],"from": "0","size": 1
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com