Elasticsearch核心操作指南:索引、文档与映射的实战解析
1. 从零上手理解Elasticsearch的核心操作脉络如果你刚开始接触Elasticsearch面对“索引”、“文档”、“映射”这些术语可能会觉得有些抽象。简单来说你可以把Elasticsearch想象成一个超级智能的图书馆。这个图书馆Elasticsearch集群里有无数个书架索引每个书架上放着很多本书文档而每本书都有固定的格式和目录映射方便管理员也就是你快速找到任何一页内容。今天要聊的创建索引、增删改查文档、定义映射就是作为这个图书馆管理员必须掌握的基本功。无论你是想用它来做日志分析、商品搜索还是构建一个知识库这些操作都是你绕不开的第一步。我会结合自己趟过的坑把这些基础但至关重要的操作掰开揉碎了讲清楚。2. 核心概念扫盲索引、文档与映射到底是什么在动手操作之前我们必须对三个核心概念建立清晰的认识。很多新手之所以操作失败或者效果不佳根源就在于概念混淆。2.1 索引数据的逻辑容器在Elasticsearch中索引是最高层级的逻辑数据容器类似于关系型数据库中的“数据库”或“表”。但它的设计初衷是为了全文搜索因此其内部结构和特性与传统的数据库表有本质区别。一个索引包含以下核心要素分片这是Elasticsearch实现分布式和水平扩展的基石。当你创建一个索引时需要指定主分片的数量。数据会被分散存储到这些分片上每个分片实际上是一个独立的Lucene索引。分片一旦设定后续无法更改在7.0版本后主分片数创建后不可修改因此规划时需谨慎。副本每个主分片可以有零个或多个副本分片。副本是主分片的完整拷贝主要用于提供数据高可用性和提升读取性能搜索请求可以被所有副本分片处理。映射定义索引中字段的类型和属性相当于表结构。设置控制索引行为的各种配置如分片数量、刷新间隔等。注意在Elasticsearch的语境中“索引”这个词有时也用作动词指“将一个文档存储到索引中的过程”这需要根据上下文来区分。2.2 文档可被搜索的基本数据单元文档是Elasticsearch中可被搜索和操作的最小数据单元以JSON格式表示。它类似于关系型数据库中的一行记录。一个文档的关键特性包括JSON格式这是Elasticsearch的世界语。所有文档都必须以JSON对象的形式存在。唯一标识每个文档属于一个索引并在该索引内有一个唯一的_id。你可以自己指定_id也可以让Elasticsearch自动生成一个。可被索引文档中的字段内容会被分析、分词并建立倒排索引这是实现毫秒级全文搜索的基础。包含元数据除了你定义的业务字段每个文档都附有元数据如_index所属索引、_id、_version版本号等。2.3 映射定义数据的蓝图映射是定义文档及其包含的字段如何存储和索引的过程。它决定了字段的数据类型如text全文文本、keyword精确值用于聚合、排序、long、date、boolean等。字段的索引方式是否被索引用什么分析器分词其他属性如字段是否可被搜索、是否存储原始值、格式如何等。Elasticsearch具有动态映射的能力。当你索引一个包含新字段的文档时它会自动根据JSON数据推断字段类型并创建映射。这虽然方便但常常导致不符合预期的映射例如数字被推断为text从而影响搜索和聚合性能。因此对于生产环境显式定义映射是推荐的最佳实践。3. 索引的生命周期管理创建、查看与删除管理索引是日常运维中最常见的操作。下面我们通过具体的REST API示例来讲解。3.1 创建索引规划是成功的一半创建索引不仅仅是执行一条命令更重要的是在创建前进行合理的规划。我们使用PUT请求来创建索引。基础创建# 创建一个名为 products 的索引使用所有默认设置5个主分片1个副本分片 PUT /products这条简单的命令会创建一个products索引。但在生产环境中我们几乎从不这么做因为默认设置很少能满足需求。带设置和映射的创建推荐PUT /my_index { “settings”: { “number_of_shards”: 3, # 主分片数根据数据量和硬件规划创建后不可变 “number_of_replicas”: 1 # 每个主分片的副本数后续可以动态调整 # “refresh_interval”: “30s” # 可选索引刷新间隔影响数据可见性延迟 }, “mappings”: { “properties”: { “title”: { “type”: “text”, # 全文搜索字段 “analyzer”: “ik_max_word” # 使用IK中文分词器 }, “price”: { “type”: “double” }, “category”: { “type”: “keyword” # 精确匹配、聚合、排序字段 }, “created_at”: { “type”: “date”, “format”: “yyyy-MM-dd HH:mm:ss||epoch_millis” } } } }实操心得分片数规划分片数不是越多越好。每个分片都有开销内存、CPU、文件句柄。一个经验法则是单个分片的数据量控制在20GB到50GB之间比较理想。对于日增量不大的业务可以先设置较少的分片如3个利用Elasticsearch的reindex功能在未来进行扩容虽然主分片数不能改但可以创建新索引并迁移数据。副本数number_of_replicas则可以随时通过Settings API调整用于应对查询压力或保障可用性。3.2 查看索引洞察内部状态创建索引后我们需要了解它的健康状况、配置和统计信息。查看单个索引的详细信息包含映射和设置GET /my_index这个命令返回的信息非常全面包括别名、映射定义、索引设置分片数、副本数、分析器等。查看索引的统计信息文档数、存储大小等GET /my_index/_stats这对于监控索引增长和容量规划非常有用。查看所有索引的简要状态常用命令GET /_cat/indices?v输出简洁明了包含健康状态health、状态status、索引名、主副分片数、文档数、存储大小等是日常运维的利器。查看索引的映射定义GET /my_index/_mapping当你忘记索引结构或需要确认动态映射的结果时这个命令必不可少。3.3 删除索引不可逆的“核按钮”删除索引是一个不可逆的操作它会删除索引中的所有数据、映射和设置。务必谨慎操作。删除单个索引DELETE /my_index使用通配符删除多个索引极度危险DELETE /log-* # 删除所有以 log- 开头的索引重要警告在生产环境中使用通配符删除索引前务必先使用GET /_cat/indices/log-*确认要删除的索引列表。误操作可能导致灾难性数据丢失。一种安全的做法是先关闭索引POST /my_index/_close观察一段时间确认无影响后再删除。关闭与打开索引如果你暂时想让某个索引不可用比如进行维护或归档但又不想删除数据可以关闭它。# 关闭索引 POST /my_index/_close # 重新打开索引 POST /my_index/_open关闭的索引会占用少量磁盘空间但不再消耗CPU和内存资源。重新打开需要一些时间恢复。4. 文档的CRUD操作数据的增删改查文档操作是与Elasticsearch交互最频繁的部分。Elasticsearch提供了丰富的API我们重点看最常用的几种。4.1 创建文档指定ID与自动生成创建索引文档有两种主要方式指定文档ID和不指定ID自动生成。方式一指定文档ID使用PUTPUT /my_index/_doc/1 # 在 my_index 索引中创建ID为 1 的文档 { “title”: “Elasticsearch实战指南”, “author”: “张三”, “price”: 68.5, “publish_date”: “2023-10-01” }如果索引中已存在ID为1的文档这条命令会完全覆盖旧文档版本号会增加。方式二自动生成文档ID使用POSTPOST /my_index/_doc/ # 注意这里没有指定ID { “title”: “Kibana数据可视化”, “author”: “李四”, “price”: 52.0 }Elasticsearch会返回一个自动生成的唯一ID如“_id”: “W0tWpZABcJQBr4K7HjSw”。这种方式适用于日志等不需要业务ID的场景。创建文档时的可选参数op_typecreate强制必须是创建操作如果文档ID已存在则失败。等同于使用_create端点。PUT /my_index/_create/1 # 或 PUT /my_index/_doc/1?op_typecreate { ... }routing通过指定路由值可以控制文档被存储到哪个分片上。这对于优化查询性能很重要。4.2 查看文档检索与源数据查看文档主要使用GET请求。检索指定ID的文档GET /my_index/_doc/1返回结果包含索引、ID、版本、是否找到以及文档的完整源数据_source字段。只获取文档源数据不要元数据GET /my_index/_source/1当你只需要文档内容时这个API更简洁高效。检查文档是否存在HEAD /my_index/_doc/1这个请求只返回HTTP状态码200存在404不存在不返回响应体性能开销最小。4.3 修改文档全量替换与部分更新修改文档需要特别注意因为Elasticsearch中的文档是不可变的。所谓的“更新”实际上是“替换”或“重建索引”。全量替换使用PUT并指定完整文档内容会替换旧文档。PUT /my_index/_doc/1 { “title”: “Elasticsearch实战指南第二版”, # 修改了标题 “author”: “张三”, “price”: 75.0, # 修改了价格 “publish_date”: “2023-10-01”, “description”: “新增了性能优化章节” # 新增了字段 }注意你必须提供文档的所有字段未提供的字段会被删除。例如如果旧文档有category字段但新文档没提供那么category字段就丢失了。部分更新使用_updateAPI这是更常用、更安全的方式只更新指定的字段。POST /my_index/_update/1 { “doc”: { “price”: 75.0, “description”: “新增了性能优化章节” } }部分更新在内部流程是1. 获取旧文档2. 合并新字段3. 索引新文档4. 删除旧文档。因此它仍然是“替换”操作但对你而言是部分更新。使用脚本进行复杂更新POST /my_index/_update/1 { “script”: { “source”: “ctx._source.price params.increment”, “lang”: “painless”, # Elasticsearch默认的脚本语言 “params”: { “increment”: 5 } } }这会将ID为1的文档的price字段增加5。脚本更新功能非常强大但需谨慎使用避免性能问题。4.4 删除文档单个与批量删除单个文档DELETE /my_index/_doc/1删除后文档不会立即从磁盘上物理删除而是在后续的段合并中被清理。批量删除使用_bulkAPI批量操作是Elasticsearch高性能的关键。_bulkAPI允许你在一次请求中执行多个创建、索引、更新、删除操作。POST /_bulk { “delete”: { “_index”: “my_index”, “_id”: “1” } } { “delete”: { “_index”: “my_index”, “_id”: “2” } } { “index”: { “_index”: “my_index”, “_id”: “3” } } { “title”: “新书”, “price”: 40 }_bulk请求的格式有严格要求每两行为一个操作单元。第一行是操作和元数据第二行是源数据delete操作没有第二行。整个请求必须由换行符分隔最后一行也必须有换行符。这是新手最容易出错的地方建议使用curl或各种语言的客户端库时仔细检查格式。5. 映射关系的深度解析与实战技巧映射决定了数据如何被理解和处理设计不当会直接导致搜索不准、性能低下。5.1 核心字段类型详解textvskeyword这是最常混淆的一对。text类型用于全文搜索。字段内容会被分词器拆分成一个个词项Token并建立倒排索引。不支持精确匹配和排序。例如商品标题、文章内容。keyword类型用于精确匹配、过滤、排序和聚合。字段内容被视为一个完整的词项不会被分词。例如订单状态“paid”, “shipped”、标签、邮箱地址。一个常见的最佳实践是对于一个既需要全文搜索又需要精确匹配的字段可以将其定义为text类型并为其添加一个keyword子字段。“properties”: { “product_name”: { “type”: “text”, “analyzer”: “ik_smart”, “fields”: { “keyword”: { “type”: “keyword”, “ignore_above”: 256 # 超过256字符的字符串不会被索引为keyword } } } }这样你可以用product_name进行中文分词搜索同时用product_name.keyword进行精确匹配或聚合。数值类型long,integer,short,byte,double,float,half_float,scaled_float。选择足够但不过度的类型以节省空间。日期类型date。必须指定格式支持多种格式。布尔与二进制boolean,binary。对象与嵌套类型object,nested。object是默认类型但数组中的对象会被扁平化丢失对象间的关联。nested类型可以保持数组中对象的独立性适用于“一对多”关系且需要独立查询的场景如博客文章的评论。5.2 动态映射的陷阱与显式映射控制Elasticsearch的动态映射很方便但也是“坑”最多的地方。动态映射的规则示例{ “name”: “John” }-name被映射为text类型并带一个keyword子字段。{ “age”: 30 }-age被映射为long类型。{ “is_active”: true }-is_active被映射为boolean类型。{ “price”: 29.99 }-price被映射为float类型。问题场景你通过Logstash导入一批JSON日志其中一个字段user_id的值有时是数字如123有时是字符串如“123”。动态映射可能会在第一次遇到数字时将其定义为long当后续遇到字符串“123”时写入就会失败报出“mapper_parsing_exception”。解决方案预定义映射在索引数据前通过PUT /index/_mapping明确定义所有字段的类型。使用动态模板为匹配特定模式的字段定义映射规则。PUT /my_index { “mappings”: { “dynamic_templates”: [ { “strings_as_keywords”: { # 模板名 “match_mapping_type”: “string”, # 匹配所有字符串字段 “mapping”: { “type”: “keyword” # 统一映射为keyword除非特别指定 } } }, { “ids_as_keywords”: { “match”: “*_id”, # 匹配以 _id 结尾的字段名 “mapping”: { “type”: “keyword” } } } ] } }关闭动态映射对于要求严格一致性的场景可以彻底关闭动态映射。“mappings”: { “dynamic”: “strict”, # 或 “false” “properties”: { ... } }设置为strict时遇到未定义的字段会抛出异常设置为false时未定义字段会被存储但不会被索引即不可搜索。5.3 映射的查看与更新查看映射GET /index/_mapping更新映射对于已存在的字段其类型无法直接修改。这是Elasticsearch的一个基本原则。如果你需要修改字段类型通常的步骤是创建一个具有正确映射的新索引。使用_reindexAPI将旧索引的数据迁移到新索引。删除旧索引将新索引的别名指向旧索引名以实现无缝切换。但是你可以向现有映射中添加新的字段PUT /my_index/_mapping { “properties”: { “new_field”: { “type”: “integer” } } }6. 实战避坑指南与性能优化理论结合实践下面分享一些从实际项目中总结的经验和教训。6.1 索引设计最佳实践基于时间或数据生命周期创建索引对于日志、监控数据使用如logs-2024.05.01这样的按日/月滚动的索引模式。这便于利用索引生命周期管理策略进行热-温-冷-删除的数据管理也便于删除旧数据。别名是利器始终通过别名来访问索引而不是直接使用索引名。例如为当前写入的索引logs-2024.05.01设置别名logs_current。当需要重建索引或切换索引时只需将别名指向新的索引应用代码无需任何改动。合理设置分片大小和数量如前所述分片大小在20-50GB较优。一个小型索引10GB使用1个主分片可能就够了。分片过多会导致查询合并开销大分片过大会影响恢复速度和并行度。6.2 文档操作性能优化务必使用批量API无论是索引、更新还是删除_bulkAPI的性能远高于单条操作。建议批量大小在5MB到15MB之间根据网络和负载调整。调整刷新间隔默认情况下索引每1秒刷新一次使新文档可被搜索。对于大批量导入场景可以临时将refresh_interval设置为-1关闭自动刷新导入完成后再改回来可以极大提升写入速度。使用自动生成的ID如果你没有天然的唯一ID让Elasticsearch自动生成ID比自定义ID性能更好因为它可以避免一次额外的查找来确定分片位置。6.3 常见错误排查mapper_parsing_exception这是最常见的错误之一意味着文档的某个字段与映射定义不符。检查错误信息中的reason通常是类型不匹配如向integer字段传了字符串或格式错误如date字段格式不对。version_conflict_engine_exception并发更新冲突。当两个请求同时更新同一文档时后一个请求会因为版本号不匹配而失败。在业务层实现重试机制或使用乐观锁处理。字段搜索不到确认字段是否被索引“index”: true。确认字段类型对keyword字段做match查询可能无效应用term查询。确认分词器对text字段搜索时查询词是否被正确分词。查询性能慢使用Profile API分析查询在每个阶段的耗时。检查是否使用了开销大的操作如script、wildcard、regexp查询。确认索引设置是否合理分片是否过多或过少。6.4 一个完整的示例电商商品索引与操作假设我们要为一个简易电商系统设计商品索引。步骤1创建索引与映射PUT /products_v1 { “settings”: { “number_of_shards”: 3, “number_of_replicas”: 1, “refresh_interval”: “1s” }, “mappings”: { “properties”: { “product_id”: { “type”: “keyword” }, “name”: { “type”: “text”, “analyzer”: “ik_max_word”, “fields”: { “keyword”: { “type”: “keyword”, “ignore_above”: 256 } } }, “description”: { “type”: “text”, “analyzer”: “ik_smart” }, “price”: { “type”: “scaled_float”, “scaling_factor”: 100 }, “category”: { “type”: “keyword” }, “tags”: { “type”: “keyword” }, “in_stock”: { “type”: “boolean” }, “created_time”: { “type”: “date”, “format”: “strict_date_optional_time||epoch_millis” }, “attributes”: { “type”: “nested”, # 嵌套类型保持属性间的独立关系 “properties”: { “key”: { “type”: “keyword” }, “value”: { “type”: “text” } } } } } }步骤2批量索引商品数据POST /_bulk { “index”: { “_index”: “products_v1”, “_id”: “1001” } } { “product_id”: “1001”, “name”: “无线蓝牙耳机”, “description”: “主动降噪续航30小时”, “price”: 299.99, “category”: “electronics”, “tags”: [“bluetooth”, “noise-cancelling”], “in_stock”: true, “created_time”: “2024-05-01T10:00:00Z”, “attributes”: [{“key”: “color”, “value”: “black”}, {“key”: “brand”, “value”: “SoundMax”}] } { “index”: { “_index”: “products_v1”, “_id”: “1002” } } { “product_id”: “1002”, “name”: “纯棉T恤”, “description”: “男士简约纯棉短袖T恤”, “price”: 89.5, “category”: “clothing”, “tags”: [“cotton”, “men”], “in_stock”: false, “created_time”: “2024-05-02T14:30:00Z”, “attributes”: [{“key”: “size”, “value”: “L”}, {“key”: “material”, “value”: “100% cotton”}] }步骤3执行搜索与更新# 搜索包含“蓝牙”且库存为真的商品 GET /products_v1/_search { “query”: { “bool”: { “must”: [ { “match”: { “name”: “蓝牙” } } ], “filter”: [ { “term”: { “in_stock”: true } } ] } } } # 更新商品价格部分更新 POST /products_v1/_update/1002 { “doc”: { “price”: 79.9, “in_stock”: true } } # 对嵌套属性进行查询 GET /products_v1/_search { “query”: { “nested”: { “path”: “attributes”, “query”: { “bool”: { “must”: [ { “term”: { “attributes.key”: “color” } }, { “match”: { “attributes.value”: “black” } } ] } } } } }掌握索引、文档和映射的操作是驾驭Elasticsearch的起点。这些基础如同建筑的基石设计得越合理上层构建的搜索和分析应用就越稳固高效。在实际操作中最忌讳的就是不假思索地使用默认配置。花时间在前期做好索引的规划、映射的设计能避免后期大量的数据迁移和重构工作。从我的经验看很多性能问题和奇怪的搜索现象追根溯源都是映射定义不当或索引规划失误导致的。当你对这些基础操作烂熟于心后再去探索聚合分析、复杂查询、集群调优等高级话题就会觉得水到渠成了。

相关新闻

Unity天空盒制作:从全景图到Cubemap的完整实现

Unity天空盒制作:从全景图到Cubemap的完整实现

1. 项目概述:为什么天空盒是新手绕不开的第一课如果你是刚接触Unity3D的新手,在捣鼓场景搭建时,大概率会遇到一个共同的困惑:为什么我的场景看起来这么“假”?明明模型摆好了,灯光也打上了,但整…

2026/7/30 5:46:28 阅读更多 →
Python+Django构建个性化图书推荐系统实战

Python+Django构建个性化图书推荐系统实战

1. 项目概述:为什么需要个性化图书推荐系统?在信息爆炸的时代,读者面对海量图书资源时常常陷入"选择困难"。传统书店的"畅销书排行榜"或"编辑推荐"模式千人一面,无法满足读者个性化的阅读需求。这正…

2026/7/30 5:46:28 阅读更多 →
势流理论:从拉普拉斯方程到面元法的工程水动力计算

势流理论:从拉普拉斯方程到面元法的工程水动力计算

1. 项目概述:从“拍脑袋”到“算出来”的流体力学利器在船舶与海洋工程、水利水电、甚至航空航天领域,工程师们每天都要面对一个核心问题:如何精确计算一个物体在流体(水或空气)中运动时所受到的力?这个问题…

2026/7/30 5:46:28 阅读更多 →

最新新闻

STM32 HAL库定时器输出比较模式详解:从PWM生成到多通道控制

STM32 HAL库定时器输出比较模式详解:从PWM生成到多通道控制

1. 项目概述:从“定时”到“输出”的精准控制在嵌入式开发里,定时器绝对算得上是核心外设里的“万金油”。很多朋友刚接触STM32的HAL库,可能最先用到的就是定时器中断,每隔固定时间干点事儿,比如闪烁个LED。但定时器的…

2026/7/30 5:55:30 阅读更多 →
差分电路输出电压偏移设计:从原理到ADC接口实践

差分电路输出电压偏移设计:从原理到ADC接口实践

1. 差分电路:从“减法器”到精密测量的核心 在模拟电路的世界里,我们常常需要处理微弱的信号,比如传感器输出的毫伏级电压、麦克风拾取的音频信号,或者长距离传输后混入大量噪声的数据线。这时候,一个简单的单端放大器…

2026/7/30 5:55:30 阅读更多 →
五级流水线CPU设计:从数据冲突到控制冲突的硬件实现与调试

五级流水线CPU设计:从数据冲突到控制冲突的硬件实现与调试

1. 项目概述:从单周期到流水线的思维跃迁搞硬件的朋友,尤其是正在啃《计算机组成原理》或者《体系结构》这门硬核课程的同学,对“流水线”这个概念一定不陌生。它听起来像是工厂里的生产流水线,在CPU设计里,它的目标也…

2026/7/30 5:55:30 阅读更多 →
STM32硬件I2C驱动RM3100磁力计:从原理到代码实现与调试

STM32硬件I2C驱动RM3100磁力计:从原理到代码实现与调试

1. 项目缘起:为什么选择硬件I2C驱动RM3100?最近在做一个需要高精度地磁测量的项目,选型时看中了PNI Sensor公司的RM3100磁力计。这颗芯片的指标很吸引人:测量范围宽、分辨率高,而且自带低噪声的磁通门传感器。但真正开…

2026/7/30 5:55:30 阅读更多 →
动态脑功能网络滑动窗口分析:原理、实践与关键问题解析

动态脑功能网络滑动窗口分析:原理、实践与关键问题解析

1. 项目概述:从静态到动态,捕捉大脑的“瞬时”对话如果你研究过脑功能网络,大概率是从静态功能连接开始的。我们通常会把一整段几分钟甚至十几分钟的fMRI扫描数据,拿来做一次性的相关性分析,得到一张“平均”的连接矩阵…

2026/7/30 5:55:30 阅读更多 →
STM32 GPIO输入模式实战:从CubeMX配置到电平读取疑难排查

STM32 GPIO输入模式实战:从CubeMX配置到电平读取疑难排查

1. 项目概述:从点亮LED到读取电平,嵌入式开发的必经之路对于每一位踏入STM32世界的开发者来说,点亮一颗LED通常是第一个“Hello World”。这个简单的动作背后,是GPIO输出模式的典型应用。然而,嵌入式系统的精髓在于“感…

2026/7/30 5:54:30 阅读更多 →

日新闻

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:13 阅读更多 →
如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经在浏览…

2026/7/30 0:00:13 阅读更多 →
“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

更多请点击: https://intelliparadigm.com 第一章:AI 教师备课辅助 AI 教师备课辅助系统正逐步成为教育数字化转型的核心支撑工具,它并非替代教师,而是通过语义理解、知识图谱与多模态生成能力,将教师从重复性劳动中解…

2026/7/30 0:00:13 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻