ElasticSearch核心概念解析:倒排索引、分片与分布式搜索原理
1. 从一个真实需求说起为什么我们要聊ElasticSearch我第一次接触ElasticSearch是在做一个日志分析模块的时候。当时业务方的需求很朴素把分散在十几台机器上的服务日志集中起来能按关键词搜、按时间段筛、按服务名聚合最好还能画个趋势图。我一开始想的是用关系型数据库搞建一张大宽表字段全塞进去加几个索引凑合能用。结果数据量一上来模糊查询直接卡死LIKE %error%这种写法在千万级数据面前基本等于自杀。后来换了个思路用倒排索引的方案才真正把这个问题解决掉而ElasticSearch就是这套思路最成熟的落地产品之一。所以这篇内容我想干的事情很简单把ElasticSearch这个东西从头讲清楚。它是什么、它解决什么问题、它的核心概念长什么样、为什么它能在搜索和日志分析这个领域站稳脚跟。如果你是一个刚接触后端或者数据处理的开发者或者你正在为“怎么让搜索变快”这件事发愁那这篇内容应该能帮你把地基打牢。我不会一上来就丢一堆分布式术语而是按照我自己学习的路径从问题出发一层一层往里剥。需要提前说明的是ElasticSearch本身是一个庞大的体系一篇文章不可能讲完。这篇定位是“概念介绍”重点放在它是什么、核心概念怎么理解、底层大概怎么运转这几件事上。具体的集群搭建、性能调优、查询DSL高级用法我会在后续的内容里单独展开。你先把概念理顺了后面动手的时候才不会晕。2. ElasticSearch到底是什么定位与核心能力拆解2.1 一句话定义与它的三个身份如果只用一句话概括ElasticSearch是一个基于倒排索引的分布式搜索与分析引擎。这句话里其实藏了三个关键信息我拆开说。第一个身份是搜索引擎。它最擅长的就是全文检索你给它一段文本它能快速找出包含相关词的文档。这跟传统数据库的精确匹配是两套逻辑。数据库的索引更像是一本书的目录你按页码或者章节名去翻而倒排索引更像是一本书后面的“关键词索引表”你查“分布式”这个词它直接告诉你这个词出现在第3页、第17页、第42页。第二个身份是分析引擎。它不只是能搜还能对数据做聚合统计。比如“过去一小时每个服务接口的报错次数分布”“每个省份的订单金额中位数”这类问题它能在搜索的同时把统计结果算出来。这一点在日志分析和业务监控场景里特别值钱。第三个身份是分布式系统。数据量大了单机扛不住它天生就是按多节点设计的数据可以分片存储、副本冗余、自动再平衡。你不需要自己写一套分库分表的逻辑它把这层复杂度封装掉了。这三个身份是叠加的不是三选一。很多人一开始只把它当搜索用后来才发现它的聚合能力同样能打再后来才意识到分布式这层设计才是它能撑住海量数据的根本原因。2.2 它和传统数据库的本质区别在哪我经常被问到的一个问题是“我有MySQL了为什么还要用ElasticSearch”这个问题问得好因为搞不清楚这个你很容易把它用错地方。核心区别在于索引结构和适用场景。传统关系型数据库用的是B树索引这种结构对“精确匹配”和“范围查询”非常友好比如WHERE id 100或者WHERE age 18。但它的短板是全文检索你让它去匹配“包含‘超时’这个词的所有日志”它只能全表扫描效率极低。ElasticSearch用的是倒排索引它的逻辑是反过来的先建立“词”到“文档”的映射。你搜“超时”它直接定位到包含这个词的文档列表不需要扫描全表。这个差异决定了它俩的分工数据库负责事务性的、强一致的、精确的读写ElasticSearch负责检索性的、高吞吐的、模糊匹配和聚合分析的查询。这里有个常见的误区我得提醒一下不要把ElasticSearch当主数据库用。它的写入不是事务性的数据持久化虽然有保障但在极端情况下是可能丢数据的。业内的常规做法是数据的主存储还是放在数据库或者消息队列里ElasticSearch作为检索层通过同步机制把数据灌进去。这个定位一定要摆正否则后面会踩大坑。2.3 它到底能解决哪些实际问题说几个我实际做过或者见过的场景你对它的价值会有更直观的感受。场景一站内搜索。电商网站的商品搜索用户输入“红色 连衣裙 长款”系统要能分词、能匹配、能按销量或价格排序还要能高亮关键词。这套逻辑用数据库写会非常痛苦用ElasticSearch就是几个查询条件的事。场景二日志集中分析。几十上百个服务的日志汇总到一起出故障的时候要能快速定位“哪个服务在哪个时间点报了什么样的错”。ElasticSearch配合采集工具能做到秒级检索还能按服务名、错误级别做聚合统计。场景三业务监控与报表。比如统计“最近7天每天的活跃用户数”“每个渠道的转化率”这些聚合查询在ElasticSearch里是原生支持的而且因为分布式架构数据量再大也能并行计算。场景四推荐与画像。基于用户行为和标签做相似度匹配找出“和这个用户兴趣相似的其他用户”或者“和这个商品相似的其他商品”这类基于向量或者词频的匹配也是它的强项。你会发现这些场景有个共同点数据量大、查询模式以检索和聚合为主、对实时性有一定要求但不需要强事务。这正好是ElasticSearch的舒适区。3. 核心概念逐个拆把地基打牢3.1 索引、文档、字段最基础的三件套理解ElasticSearch先记住三个词索引Index、文档Document、字段Field。我用一个类比帮你建立直觉。把ElasticSearch想象成一个大型的档案室。索引就是档案室里的一个抽屉柜比如“员工档案柜”“合同档案柜”。文档就是抽屉里的一份份档案每份档案是一个独立的整体。字段就是档案上的一个个信息项比如姓名、入职日期、部门。对应到技术层面索引是文档的集合文档是数据的基本单位字段是文档的属性。这里有个容易混淆的点ElasticSearch里的“索引”和数据库里的“索引”不是一回事。数据库的索引是加速查询的数据结构而ElasticSearch的索引更接近“表”的概念是数据的容器。这个命名确实容易让人绕但记住它的语境就好。文档用JSON格式表示一个典型的文档长这样{ user_id: 10086, user_name: 张三, age: 28, city: 杭州, register_time: 2024-01-15T10:30:00 }每个字段都有自己的数据类型常见的有text分词文本、keyword不分词的精确值、long、date、boolean等。类型的选择直接影响你后面能不能搜、怎么搜这个后面会细说。3.2 分片与副本分布式能力的基石单机存不下、扛不住的时候就得靠分布式。ElasticSearch的分布式能力靠两个机制实现分片Shard和副本Replica。分片是把一个索引的数据切成多份分散到不同节点上。比如你有一个1亿条数据的索引设了5个主分片那每个分片大概存2000万条。查询的时候请求会分发到各个分片并行执行最后汇总结果。这就是它能处理海量数据的核心原因。副本是分片的备份。每个主分片可以有一个或多个副本分片副本分片分布在不同的节点上。副本的作用有两个一是高可用主分片所在的节点挂了副本可以顶上来二是提升读吞吐查询请求可以同时打到主分片和副本分片上相当于读能力翻倍。这里有个实操中非常重要的点主分片数量在索引创建后就固定了不能改。副本数量可以随时调整。所以创建索引的时候主分片数一定要想清楚。设少了后面扩容麻烦设多了每个分片太小反而浪费资源。我一般的经验是单个分片的大小控制在10GB到50GB之间比较合适你可以根据预估的数据总量反推分片数。3.3 倒排索引为什么它搜得快倒排索引是ElasticSearch的灵魂不理解这个你就理解不了它为什么快。先说正排索引。正排索引是“文档ID → 文档内容”的映射你知道文档ID去查内容这是数据库擅长的。但搜索的场景是反过来的你知道一个词要找出哪些文档包含这个词。正排索引只能一个个文档去扫效率低。倒排索引把这个关系倒过来建立“词 → 文档ID列表”的映射。比如词项文档ID列表分布式1, 3, 7搜索2, 3, 5引擎1, 5, 7你搜“分布式 引擎”它分别取出两个词对应的文档列表做交集运算得到文档1和7。这个过程不需要扫描任何文档内容纯粹是集合运算速度极快。倒排索引的构建过程涉及分词和归一化。分词是把一段文本切成一个个词项中文分词比英文复杂因为中文词与词之间没有空格。归一化包括转小写、去停用词、词干提取等目的是让“Searching”和“search”能匹配上。这些处理由**分析器Analyzer**完成分析器的配置直接影响搜索效果这是后面调优的重点。3.4 节点、集群与角色分工一台ElasticSearch实例叫一个节点Node多个节点组成一个集群Cluster。集群有一个名字节点通过配置相同的集群名自动发现并组网。节点有不同的角色常见的几种主节点Master Node负责集群层面的管理比如创建删除索引、分配分片、维护集群状态。它不负责数据存储和查询。数据节点Data Node负责存储数据、执行查询和聚合。这是最消耗资源的角色。协调节点Coordinating Node接收客户端请求转发到相关数据节点汇总结果返回。每个节点默认都有协调能力。** ingest节点**在数据写入前做预处理比如字段提取、格式转换。生产环境里通常会把这些角色分开部署避免互相影响。比如主节点单独几台小机器数据节点用大内存大磁盘的机器。这个规划思路在小集群里可以简化但节点一多就必须考虑。4. 数据是怎么进去又是怎么出来的读写流程解析4.1 写入流程从一条文档到落盘搞懂写入流程你才能理解为什么它写入快、以及什么情况下会丢数据。当你发送一条文档到某个索引时协调节点会根据文档ID做路由计算决定这条文档应该落到哪个主分片。路由公式是shard hash(document_id) % number_of_primary_shards这也是为什么主分片数不能改——改了之后路由结果全变了老数据就找不到了。确定分片后请求转发到该分片所在的主节点。主节点先写入内存缓冲区和事务日志Translog。注意这时候数据还没真正落盘到Lucene的段文件里但已经写入了Translog所以即使断电也能从日志恢复。默认情况下ElasticSearch每隔1秒执行一次刷新Refresh把内存缓冲区的数据生成一个新的段Segment这时候数据才能被搜索到。这就是为什么它被称为“近实时”而不是“实时”——写入到可搜索之间有最多1秒的延迟。段是不可变的一旦生成就不能修改。那删除和更新怎么处理删除是标记一个删除位更新是先标记旧文档删除再写入新文档。后台会定期执行段合并Merge把多个小段合并成大段同时清理被标记删除的文档释放空间。提示Translog的刷盘策略由index.translog.durability控制。默认是request每次写入都刷盘最安全但性能有损耗。改成async可以提升写入性能但极端情况下可能丢少量数据。这个取舍要根据业务对数据可靠性的要求来定。4.2 查询流程两阶段拉取查询分两个阶段Query阶段和Fetch阶段。Query阶段协调节点把查询请求广播到索引的每个分片主或副本都行。每个分片在本地执行查询返回一个“文档ID 排序值”的列表不返回文档内容。协调节点收集所有分片的结果做全局排序选出最终要返回的文档ID列表。Fetch阶段协调节点根据选出的文档ID去对应的分片上拉取完整的文档内容最后组装返回给客户端。这个两阶段设计的好处是Query阶段传输的数据量很小只有ID和排序值避免了大量无用数据的网络传输。缺点是会多一轮网络交互。理解这个流程对后面排查“为什么查询慢”很有帮助——如果Query阶段慢可能是分片太多或者查询条件太复杂如果Fetch阶段慢可能是返回的文档太大或者网络带宽不够。4.3 近实时搜索的取舍逻辑“近实时”这个词听起来有点别扭为什么不做成完全实时这背后是性能与实时性的权衡。每次写入都立即生成新段并开放搜索意味着频繁的段生成和合并磁盘IO和CPU开销会非常大。用1秒的刷新间隔把这段时间内的写入攒一批一起处理能大幅提升吞吐量。对于绝大多数搜索场景1秒的延迟完全可以接受。如果确实需要实时看到数据可以手动调用刷新接口但不要频繁这么做会拖垮性能。这个设计思路其实在很多系统里都能看到用微小的延迟换取成倍的吞吐提升。理解了这个取舍你就不会纠结于“为什么刚写入的数据搜不到”这种问题了。5. 实操中绕不开的几个关键配置5.1 分析器的选择与自定义分析器决定了文本怎么被切分和归一化直接影响搜索的召回率和准确率。ElasticSearch内置了多种分析器常用的有standard默认分析器按 Unicode 文本分割算法切分转小写去标点。对英文够用对中文是按字切分效果一般。simple按非字母字符切分转小写。whitespace按空格切分不转小写。keyword不分词整个字段作为一个词项。中文场景下内置分析器基本不够用通常需要安装中文分词插件。选型的时候要考虑你的业务特点是通用搜索还是专业领域搜索需不需要自定义词典这些都会影响分词效果。自定义分析器的配置示例{ settings: { analysis: { analyzer: { my_analyzer: { type: custom, tokenizer: standard, filter: [lowercase, stop] } } } } }注意分析器是在索引创建时指定的字段一旦用了某个分析器后面改起来很麻烦通常需要重建索引。所以前期一定要想清楚最好先用样本数据测试分词效果。5.2 字段类型text还是keyword这是新手最容易搞混的地方。text类型会被分词适合全文检索keyword类型不分词适合精确匹配、排序和聚合。一个字段能不能同时支持两种用法可以用fields多字段特性{ mappings: { properties: { title: { type: text, fields: { keyword: { type: keyword, ignore_above: 256 } } } } } }这样title用于全文搜索title.keyword用于排序和聚合。ignore_above表示超过256字符的值不建立keyword索引避免长文本撑爆内存。我踩过的一个坑是把本该用keyword的字段设成了text结果做聚合统计的时候发现同一个值被拆成了多个词项统计结果完全不对。比如“北京市”被拆成“北京”和“市”聚合出来就是两条。这种问题排查起来很费时间前期设计的时候一定要确认字段的查询模式。5.3 分片数的估算方法前面说了主分片数不能改那到底设多少合适我给一个实操的估算思路。先预估数据总量和增长趋势。假设你现在有100GB数据预计一年后增长到500GB。单个分片建议控制在30GB左右那么一年后需要大约17个分片。考虑到预留空间可以设20个主分片。如果节点数不多比如只有3个数据节点那20个分片分到3个节点上每个节点大约7个分片这个密度是合理的。分片不是越多越好。每个分片都是一个Lucene实例有固定的内存和文件句柄开销。分片过多会导致集群管理负担加重查询时协调节点要等待更多分片的响应反而变慢。经验值是单节点上的分片数控制在20个以内超过这个数就要考虑加节点或者合并索引了。副本数方面至少设1个保证高可用。如果读请求特别多可以设2个用副本分担读压力。但副本会占用额外的存储空间这个成本要算进去。6. 常见问题与排查思路实录6.1 集群健康状态怎么看集群健康状态有三种颜色这个一定要会看状态含义处理建议green所有主分片和副本分片都正常无需处理yellow所有主分片正常但有副本分片未分配检查节点数是否少于副本数或磁盘空间是否不足red有主分片未分配紧急部分数据不可用需立即排查节点状态和磁盘yellow状态在小集群里很常见比如你只有1个节点却设了1个副本副本没地方放就是yellow。这种不影响使用但失去了高可用保障。red状态就要警惕了通常是节点宕机或者磁盘满了。6.2 查询慢的常见原因排查查询慢的原因很多我按排查顺序列几个高频的第一看是不是返回了大量数据。默认查询返回10条但如果你设了size10000网络传输和序列化的开销会很大。能用分页就用分页深度分页用search_after而不是fromsize。第二看是不是聚合操作太重。聚合需要遍历所有匹配的文档数据量大时很吃CPU和内存。可以先用查询条件缩小范围再做聚合。第三看分片是不是太多。分片多协调节点要等所有分片返回木桶效应明显。可以适当减少分片数或者用路由把查询限定到特定分片。第四看是不是有慢查询。开启慢查询日志找出执行时间超过阈值的查询针对性优化。{ index.search.slowlog.threshold.query.warn: 10s, index.search.slowlog.threshold.query.info: 5s, index.search.slowlog.threshold.fetch.warn: 1s }6.3 写入性能上不去的调优方向写入慢通常和刷新频率、副本数、段合并有关。调大刷新间隔。默认1秒如果业务对实时性要求不高可以改成30秒甚至更长减少段生成频率。写入时把副本数设为0写完后再改回来。副本写入是同步的副本越多写入越慢。批量导入场景下这个技巧很实用。用批量写入API。单条写入的网络开销占比很高批量写入能显著提升吞吐。一般每批500到1000条比较合适太大反而容易超时。控制段合并。段合并是后台自动进行的会消耗IO。如果写入压力大可以限制合并的线程数把资源留给写入。提示调优没有银弹每个参数都有副作用。改之前先压测改之后看监控用数据说话不要凭感觉调。7. 我对ElasticSearch学习路径的一点个人建议回过头看我学ElasticSearch的过程走了不少弯路。一开始急着搭集群、写查询结果概念没理顺遇到问题只能瞎试。后来沉下心把倒排索引、分片副本、读写流程这几个基础概念啃透了再去看那些配置和API就有一种“原来如此”的感觉。如果你刚开始学我的建议是先用单节点跑起来建一个索引灌一批测试数据手动执行几种查询观察结果。然后故意改改分析器配置看看分词结果有什么变化。再然后模拟一下节点宕机看看集群状态怎么变。这种“动手观察”的方式比看十篇文档都管用。另外不要试图一次把所有东西都学会。ElasticSearch的生态很大查询DSL、聚合、映射、集群管理、性能调优每一块都够研究很久。先把最核心的20%掌握住能解决80%的问题剩下的在遇到具体需求时再深入。我到现在也不敢说对它了如指掌但至少遇到问题知道往哪个方向查、怎么验证这就够了。最后分享一个我常用的验证方法任何配置改动先在测试环境用真实数据量的样本验证确认效果和副作用之后再上生产。ElasticSearch的很多参数是相互影响的拍脑袋改很容易出问题。稳一点慢一点反而更快。

相关新闻

交易重放漏洞全解析:从EIP-155到多链防重放实战

交易重放漏洞全解析:从EIP-155到多链防重放实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 1:19:57 阅读更多 →
线性代数矩阵运算全解析:加法、数乘、乘法与特殊矩阵

线性代数矩阵运算全解析:加法、数乘、乘法与特殊矩阵

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 1:19:57 阅读更多 →
Java URLConnection HTTP请求实战:GET/POST编码、超时与HTTPS避坑指南

Java URLConnection HTTP请求实战:GET/POST编码、超时与HTTPS避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 1:19:57 阅读更多 →

最新新闻

Natron ErodeSmooth 节点完全指南:归一化功率加权腐蚀/膨胀滤镜的参数解析与源码级解读

Natron ErodeSmooth 节点完全指南:归一化功率加权腐蚀/膨胀滤镜的参数解析与源码级解读

音视频视频处理图形学桌面应用 【免费下载链接】Natron Open-source video compositing software. Node-graph based. Similar in functionalities to Adobe After Effects and Nuke by The Foundry. 项目地址: https://gitcode.com/gh_mirrors/na/Natron 点击查看 …

2026/10/15 3:32:41 阅读更多 →
GreaterWMS 移动端构建实战:基于 Quasar CLI 与 Cordova 的 Android 打包安装全流程

GreaterWMS 移动端构建实战:基于 Quasar CLI 与 Cordova 的 Android 打包安装全流程

后端前端企业应用 【免费下载链接】GreaterWMS This Inventory management system is the currently Ford Asia Pacific after-sales logistics warehousing supply chain process . After I leave Ford , I start this project . You can share your vacant warehouse space, …

2026/10/15 3:32:41 阅读更多 →
从Apollo-11代号项目到可复现工程:逆向拆解与改造指南

从Apollo-11代号项目到可复现工程:逆向拆解与改造指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 3:32:41 阅读更多 →
rospack depends1 报错排查:ROS依赖查询与环境变量配置实战

rospack depends1 报错排查:ROS依赖查询与环境变量配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 3:32:41 阅读更多 →
Vue2多页面应用模板:从vue.config.js到webpack配置的完整实践

Vue2多页面应用模板:从vue.config.js到webpack配置的完整实践

简介:Vue 2.0多页面应用模板面向需要同时维护多个独立页面的前端开发场景,旨在解决传统单页应用在官网、专题页等多入口项目中重复搭建构建流程、难以统一工程化配置的问题。资源包共32个文件,压缩后仅31KB,包含15个JavaScript脚本…

2026/10/15 3:32:41 阅读更多 →
NC65销售订单批量导入实战:从数据清洗到SQL脚本全攻略

NC65销售订单批量导入实战:从数据清洗到SQL脚本全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 3:31:40 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →