ElasticSearch分页查询踩坑实录:如何绕过10000条限制的实战指南

ElasticSearch分页查询踩坑实录:如何绕过10000条限制的三种实战方案 本文深入探讨了ElasticSearch分页查询中的10000条限制问题,提供了三种实战方案:业务层优雅降级、参数调优及风险控制、以及深度分页的专业解决方案(Scroll API和Search After)。通过实际案例和性能对比,帮助开发者高效处理海量数据分页需求,优化查询性能。 阅读详情

ElasticSearch深度分页:突破万条限制的工程实践与架构思考

那天下午,监控系统突然告警,一个原本运行平稳的数据导出服务挂了。日志里赫然躺着一行刺眼的错误信息:Result window is too large, from + size must be less than or equal to: [10000] but was [100001]。团队里一位刚接手ElasticSearch(后面简称ES)不久的同学有点懵,跑来问我:“这个分页查询,怎么翻到第1001页(假设每页100条)就不行了?ES不是号称能处理海量数据吗?”

这个问题,几乎每个从传统关系型数据库转向ES的开发者都会踩坑。表面上看,它只是一个简单的参数限制;往深了挖,它触及的是ES作为分布式搜索引擎的底层设计哲学、性能权衡以及大规模数据处理的工程实践。今天,我们就抛开那些浅尝辄止的“解决方案”,从架构原理到生产实战,彻底拆解ES深度分页的困局与破局之道。

1. 理解限制:为什么是10000条?

很多人第一反应是去修改那个 index.max_result_window 参数,把它从默认的10000调成100000甚至更大。这确实能暂时让错误消失,但这无异于用止痛药治疗骨折,不仅治标不治本,还可能带来更严重的后果。

from + size 分页的工作原理,是理解这一切的关键。当你执行一个 { "from": 9900, "size": 100 } 的查询时,ES内部并不是只去获取第9900到10000条数据。它的工作流程是这样的:

  1. 查询阶段:协调节点将查询请求广播到索引的所有相关分片(Shard)。
  2. 取数阶段:每个分片在本地执行查询,计算出前 10000 条(from+size)数据的排序结果,但只返回其中关于这100条数据的文档ID和排序值(如 _score)给协调节点。
  3. 归并阶段:协调节点收集所有分片返回的“候选”文档ID和排序值,进行全局排序,最终确定哪些文档是排名第9900到10000位的。
  4. 获取阶段:协调节点再根据确定的文档ID,去对应的分片上拉取完整的文档内容,最终返回给客户端。

看到问题了吗?为了给你第9900-10000条数据,每个分片都需要在本地构建和排序一个包含前10000条结果的优先级队列。这消耗的是内存(Heap)和CPU。当 from 值很大时,比如要取第50万条之后的数据,每个分片都需要排序50万+条数据,协调节点则需要归并来自多个分片的数十万条元数据。这对集群性能是灾难性的。

注意:index.max_result_window 的设置是索引级别的,修改它需要关闭索引,这在高可用场景下需谨慎。盲目调大此值,极易导致查询耗尽JVM堆内存,引发节点OOM(OutOfMemoryError)而脱离集群。

所以,10000这个默认限制,是ES官方设置的一个“安全护栏”,防止用户无意中发起一个会拖垮整个集群的查询。它背后的潜台词是:from + size 模式只适用于浅分页(Top-N查询),不适合深度遍历全部数据。

那么,真正的需求来了:如果业务上就是需要导出全部数据、或者实现一个可以无限下滑的列表,我们该怎么办?

2. Scroll API:为深度遍历而生的“游标”

当我们需要顺序、完整地遍历一个巨大结果集时,Scroll API 是ES设计的标准答案。它的核心思想类似于数据库里的游标(Cursor):在第一次查询时,创建一个快照视图,后续通过一个游标ID来分批获取数据。

2.1 Scroll 的工作原理与基础用法

Scroll 查询分为两个步骤:初始化和迭代。

初始化:发起一个带有 scroll 参数的搜索请求。这个参数(如 1m)告诉ES,这个搜索上下文(Search Context)需要保持活跃多长时间。

# 初始化一个Scroll查询
POST /your_index/_search?scroll=1m
{
  "size": 100,
  "query": {
    "match_all": {}
  },
  "sort": ["_doc"]  # 按_doc排序效率最高
}

这个请求的返回结果除了第一批数据,还会包含一个 _scroll_id。这个ID就是后续获取数据的“门票”。

迭代:使用得到的 _scroll_id,向 _search/scroll 端点发起请求,获取下一批数据。

# 使用scroll_id获取下一批结果
POST /_search/scroll
{
  "scroll": "1m",
  "scroll_id": "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAAC..."
}

你需要重复这个过程,直到返回的 hits 数组为空,表示所有数据已遍历完毕。

2.2 Scroll 的优缺点与性能考量

Scroll 并非银弹,理解其特性才能用好它。

优点:

  • 高效遍历:避免了 from+size 深度分页时的重复排序和打分开销。初始查询后,后续每次滚动只是从快照中获取下一批数据。
  • 适合大数据量导出:是数据迁移、全量导出、离线分析等场景的标配。

缺点与注意事项:

  • 实时性牺牲:Scroll 基于查询发起时的数据快照。在scroll上下文存活期间,新写入、更新或删除的文档不会反映到遍历结果中。它提供的是“当时那一刻”的视图。
  • 资源占用:搜索上下文会占用ES节点(特别是协调节点)的堆内存和文件句柄。一个未及时关闭的scroll上下文就是内存泄漏。
  • 非随机访问:你只能顺序地一批批往下走,无法跳转到任意页码。

提示:务必在遍历完成后,主动删除scroll上下文以释放资源。即使scroll超时自动失效,也建议显式清理。

DELETE /_search/scroll
{
  "scroll_id": "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAAC..."
}

为了更直观地对比,我们来看一下 from+size 与 scroll 的核心差异:

特性维度from + size 分页Scroll API
设计目的随机访问,跳转到任意页码顺序遍历大量数据
实时性实时,反映最新数据状态非实时,基于查询快照
性能开销随 from 值增大而指数级增长初始开销固定,后续滚动开销低
内存占用每次查询临时占用,查询结束释放创建搜索上下文,持续占用直到超时或删除
适用场景用户前端的分页浏览(如前100页)数据全量导出、批量处理、离线分析
结果集上限受 index.max_result_window 限制理论上无限制,但受硬件资源制约

3. Search After:实时深度分页的现代方案

如果你需要的是既能深度分页,又要求结果实时性的能力,比如一个可以无限下滑的实时信息流,那么 Search After 是你的最佳选择。它是ES 5.0之后引入的特性,旨在解决Scroll在实时性上的不足。

Search After 的原理是利用上一页最后一条结果的排序值(Sort Values),作为查询下一页的“锚点”。这要求查询必须有至少一个确定的、唯一的排序条件(通常会将 _id 作为最后排序字段以保证唯一性)。

3.1 Search After 实战演练

假设我们有一个商品索引,需要按创建时间倒序,实现实时深度分页。

第一步:获取第一页数据

GET /products/_search
{
  "size": 100,
  "query": {
    "match_all": {}
  },
  "sort": [
    {"created_at": "desc"},
    {"_id": "asc"}  # 加入_id作为唯一性保障
  ]
}

返回的结果中,每个文档都会包含一个 sort 字段,其值就是该文档在排序条件中的位置。

第二步:获取后续页数据 使用上一页最后一个文档的 sort 值,作为 search_after 参数。

GET /products/_search
{
  "size": 100,
  "query": {
    "match_all": {}
  },
  "sort": [
    {"created_at": "desc"},
    {"_id": "asc"}
  ],
  "search_after": [1640995200000, "product_100"]  # 上一页最后一条的created_at和_id
}

3.2 关键细节与避坑指南

  1. 稳定的排序字段:排序字段组合必须能唯一确定文档顺序。如果 created_at 可能重复,就必须加上 _id 这样的唯一字段,否则分页时可能丢失或重复数据。
  2. 查询条件一致性:search_after 的“锚点”只在相同的查询条件和相同的排序规则下有效。如果查询的 query 或 sort 改变了,search_after 将失效。
  3. 无法跳页:和Scroll一样,它只能一页接一页地顺序获取,不支持直接跳到第N页。但这对于“无限滚动”的交互模式来说,恰恰是优点。
  4. 实时性:由于每次都是一个新的搜索请求,因此能获取到索引中最新的数据,具备良好的实时性。

Search After 结合了 from+size 的实时性和 Scroll 处理深分页的高效性,是处理用户端深度浏览场景的推荐方案。它的资源开销是每次查询级别的,查询完即释放,不会像Scroll那样长期占用资源。

4. 切片Scroll:并行加速大数据导出的利器

当你要导出的数据量极其庞大,比如上亿条,即使使用Scroll顺序遍历,也可能需要数小时。这时,切片Scroll(Sliced Scroll) 可以让你将一个大任务拆分成多个并行执行的子任务,充分利用集群资源,大幅缩短执行时间。

其原理是在初始化Scroll时,指定一个切片ID(slice.id)和切片总数(slice.max)。每个切片独立地、并行地遍历属于自己的那部分数据。

# 第一个工作线程,获取切片0的数据
POST /large_index/_search?scroll=1m
{
  "slice": {
    "id": 0,        # 切片ID,从0开始
    "max": 5        # 总切片数,这里分为5片
  },
  "size": 100,
  "query": {
    "match_all": {}
  },
  "sort": ["_doc"]
}

# 第二个工作线程,同时获取切片1的数据
POST /large_index/_search?scroll=1m
{
  "slice": {
    "id": 1,
    "max": 5
  },
  "size": 100,
  "query": {
    "match_all": {}
  },
  "sort": ["_doc"]
}
# ... 以此类推,启动5个线程或进程分别处理 id=0,1,2,3,4 的切片。

使用切片Scroll的几点经验:

  • 切片数量:通常建议设置为等于索引的主分片数,这样每个切片可以恰好在一个分片上执行,效率最高。但也可以多于分片数,ES会在分片内部再进行划分。
  • 资源权衡:更多的切片意味着更多的并行Scroll上下文,会消耗更多内存。需要根据集群资源和数据量权衡。
  • 结果顺序:各个切片内部是顺序的,但不同切片之间的数据获取是并行的,全局来看数据顺序是不确定的。这适用于导出后需要再处理的场景,不适用于要求严格全局顺序的场景。

5. 架构层面的思考与选型建议

技术方案的选择,永远要服务于业务场景。面对ES分页问题,我们不能只会调参数,更要能从架构视角做出合理决策。

场景一:用户前端分页浏览(如管理后台表格)

  • 需求:用户可能随机翻页,需要实时数据。
  • 方案:严格使用 from + size。
  • 策略:
    • 通过产品设计,限制可查询的数据范围(如加强筛选条件),确保 from + size 不超过一个安全值(比如5000)。
    • 如果业务上确实需要深翻页,考虑使用 Search After 改造为“无限滚动”或“上一页/下一页”模式,并教育用户“跳转到特定页”在此场景下是不合理的。

场景二:数据全量导出或批量处理

  • 需求:需要获取满足条件的所有数据,顺序无关紧要,对实时性要求不高。
  • 方案:优先使用 Scroll API。
  • 策略:
    • 数据量极大时,启用切片Scroll进行并行导出。
    • 务必在客户端代码中做好异常处理和上下文清理,防止scroll泄露。
    • 导出服务最好有超时和重试机制。

场景三:C端信息流(如新闻App、社交动态)

  • 需求:无限下拉刷新,内容需要实时更新。
  • 方案:使用 Search After。
  • 策略:
    • 排序字段通常使用“发布时间戳”加上“ID”以保证唯一性。
    • 客户端每次请求携带上一页最后一条的排序值。
    • 服务端可结合缓存,对热点查询的第一页数据进行缓存,减轻ES压力。

一个常见的陷阱:试图用 Search After 去模拟传统的页码跳转。这需要服务端缓存每一页的“锚点”(sort值),实现复杂且容易出错。当遇到这种需求时,更应该回头审视产品逻辑是否合理——用户真的需要直接跳到第1000页吗?是否有更好的信息检索方式(如搜索、筛选、更细的时间维度划分)?

最后,别忘了监控。无论采用哪种方案,都需要在ES集群和业务应用层面对深度查询进行监控:

  • ES层面:关注 indices.search.scroll_current, indices.search.scroll_total, indices.search.query_time 等指标。
  • 应用层面:记录分页查询的深度、耗时,并设置告警。对于频繁出现的深度分页请求,要主动分析其合理性。

ES的10000条限制,与其说是一个技术障碍,不如说是一个架构提示。它迫使我们去思考数据访问的模式,选择最适合的工具,而不是简单地用“分页”一把锤子去敲所有钉子。在实际项目中,我通常会把这些方案封装成统一的DataFetcher组件,根据不同的查询场景(浅分页、深度遍历、实时流)自动选择底层实现,让业务开发同学无需关心这些底层细节,只需关注业务逻辑本身。这背后的复杂度,就由我们这些基础架构的搭建者来消化吧。

ES分页踩坑实录:从‘只能查10000条’到轻松处理千万级数据,我的Search after优化之路 本文详细记录了从ES基础分页到处理千万级数据的Search after优化实践。通过分析from/size方案的性能瓶颈和max_result_window调整的隐患,提出基于Search after的高效分页方案,显著提升查询性能并降低内存消耗,适用于大数据量场景的ES分页需求。 阅读详情

相关推荐

GoSearch集成BreachDirectory:构建企业级安全情报搜索平台

数据泄露已成为企业安全的核心威胁,如何高效利用海量泄露情报是安全运营的关键。其原理在于通过哈希索引与本地化存储技术,将外部威胁情报与内部业务数据关联,实现风险实时识别。这一技术方案的价值在于打破了数据孤岛,将被动查询转变为主动监控,大幅提升了安全事件的响应与处置效率。在应用场景上,它可无缝集成至企业统一搜索平台,在员工信息检索、日志审计等日常操作中无感植入风险提示。本文以GoSearch集成BreachDirectory为例,详细阐述了通过元数据本地化、增量同步与插件化设计,构建实时、高效且合规的安全情报搜

congran6617的博客 401

ElasticSearch分页查询踩坑实录:为什么你的查询结果被限制在10000条?

本文深入解析ElasticSearch分页查询的10000条限制问题,揭示其背后的分布式系统内存保护机制,并提供Scroll API、Search After及数据访问重构三大实战方案。通过性能优化技巧和架构设计思考,帮助开发者高效处理深度分页场景,避免常见的查询陷阱。

weixin_29281915的博客 374

向量存储实战指南:RAG系统中的语义检索核心架构

向量存储是支撑生成式AI实现精准语义检索的关键基础设施,其本质是将非结构化数据(文本、图像等)通过Embedding模型映射为高维向量,并利用近似最近邻(ANN)算法完成毫秒级相似性匹配。它并非传统数据库的替代品,而是弥补关键词搜索在语义理解上的根本缺陷——例如‘iPhone促销’与‘苹果手机降价’零关键词重合却语义高度一致。技术价值在于 bridging 模型能力与私有数据之间的鸿沟,使RAG系统具备可扩展、低延迟、高相关性的实时召回能力。典型应用场景包括企业知识库问答、智能客服、法律文书比对及电商个性化

dibeichan3033的博客 776

ElasticSearch核心数据结构与操作指南:从倒排索引到实战避坑

在数据处理领域,高效检索与分析非结构化信息是核心挑战。其原理通常围绕索引结构展开,例如倒排索引通过建立词项到文档的映射,实现了远超遍历查询的搜索速度,这是全文搜索引擎的基石。这项技术的价值在于将文本、日志等数据转化为可高速查询和聚合的知识网络,极大地提升了数据洞察力。其应用场景广泛,从日志分析、商品推荐到安全监控都离不开它。本文以ElasticSearch为例,深入解析其以倒排索引、文档与分片为核心的数据结构,并涵盖索引管理、文档CRUD、搜索查询与聚合分析等基本操作,同时针对映射爆炸、深分页性能陷阱等生产

weixin_33716154的博客 308

接口超时排查与优化:全链路性能问题定位与解决实战

在分布式系统与微服务架构中,接口超时是常见的性能瓶颈与稳定性挑战。其本质是请求在预设时间内未获得完整响应,根源可能遍布客户端、网络、网关、应用服务器、数据库及下游服务等全链路环节。理解超时机制、线程池管理与JVM垃圾回收(GC)等基础原理,对于构建高可用系统至关重要。从技术价值看,有效的超时治理能直接提升用户体验与业务成功率。在实际应用场景中,开发与运维人员常需结合链路追踪与日志分析,定位慢SQL、连接池耗尽或下游依赖异常等具体问题。本文聚焦于接口请求超时这一经典场景,系统梳理了从现象定义、分层排查到体系化

weixin_34228387的博客 698

构建高性能内容聚合平台:从域名解析到架构部署全流程实战

内容聚合平台是现代Web开发中的常见模式,其核心原理是通过技术手段将多源信息整合并统一呈现。从技术价值看,它能有效提升信息获取效率,优化用户体验,并可作为流量入口。在应用场景上,广泛适用于新闻资讯、行业门户、数据仪表盘等需要整合多方内容的领域。实现这类平台涉及多个关键技术环节,包括微服务架构选型、前端多端适配策略以及高性能缓存设计。其中,Spring Boot和Vue.js是构建此类系统的热门技术组合,能有效支撑动态内容管理与响应式界面开发。Redis作为缓存层的核心组件,对提升系统读取性能至关重要,合理的

cuanwei9356的博客 439

Ubuntu 20.04 原生部署 ELK Stack 可观测性中枢实战

ELK Stack(Elasticsearch、Logstash、Kibana)是构建日志驱动可观测性的核心开源技术栈,其本质是一条从数据采集、清洗转换、存储检索到可视化分析的完整可观测性流水线。底层依赖倒排索引与FST等高效检索结构,支撑毫秒级日志查询;通过Logstash的grok解析与Elasticsearch的动态mapping实现非结构化日志的结构化治理;在Ubuntu 20.04等Linux LTS系统上原生部署,可精准调控JVM内存、vm.max_map_count、文件句柄等关键参数,规避D

weixin_34321753的博客 410

数据库索引设计三准则:数据库、查询、列层级决策树

索引是关系型数据库性能优化的核心机制,其本质是在读写性能、存储开销与维护成本之间做动态权衡。理解B+树索引原理是基础,但真正决定效果的是面向业务场景的设计方法论:先评估数据库整体负载(表大小、更新频率、索引占比),再匹配具体SQL的执行路径(覆盖索引、联合索引顺序、批量操作适配),最后落实到列级物理约束(数据类型限制、最左前缀原则、选择率阈值)。脱离这三层递进逻辑的索引建设,极易导致‘越优化越慢’。本文聚焦MySQL实战,结合orders等真实业务表,详解如何用最少索引达成最大性能增益。

diaojin6880的博客 451

MongoDB博客系统数据建模实战:嵌入、引用与分桶黄金组合

在NoSQL数据库设计中,数据建模本质是将业务访问模式翻译为物理存储结构。MongoDB并非关系型数据库的JSON变体,其核心优势在于文档局部性、原子操作与灵活 schema;而16MB文档限制、数组膨胀风险和聚合性能瓶颈,决定了盲目套用关系模型必然导致高延迟与运维危机。嵌入(Embedding)适用于高频共读字段,保障单次I/O完成渲染;引用(Referencing)配合索引优化的$lookup,支撑低频深度查询;分桶(Bucketing)则是应对评论等无限增长数组的唯一可扩展方案。本文以日活5万+博客系

weixin_30301449的博客 528

最新推荐-2026年固态电池+锂电正极+硅基负极等关键技术实践PPT合集(55份).zip

2026年最新固态电池+锂电正极+硅基负极等关键技术实践PPT合集,共55份。供大家查阅。 一、固态电池 1.全固态电池用硅基负极材料研究进展 2.全固态电池硅基负极的开发思考 3.功能型固态电解质设计及界面调控 4.固态电池及关键材料研发与产业化进展 5.固态电池的产业化应用探索 6.固态锂电池开发现状及未来展望 7.固态锂离子电池正极结构设计与材料选择 8.固态锂金属电池设计与应用 9.硫化物全固态电池石墨和硅负极性能调控技术 10.硫化物固态电解质行业应用 11.聚合物基固态电解质与固态电池的关键技术 12.蜂鸟声共振技术-固态电池产业化的革命性创新 13.长安汽车固态电池应用探索 14.高安全性固态电池技术发展趋势 15.高性能硫化物全固态锂电池解决方案 16.高硅体系的膨胀解决方案 二、硅基负极 1.化学气相沉积碳包覆技术在硅基负极材料中的应用 2.新型粘结剂解决 硅基负极膨胀问题 3.氧化亚硅负极材料化学预锂化与界面设计 4.流化床法生产磷酸铁锂及硅负极材料研究 5.石墨烯包覆硅碳负极 6.硅基材料的发展现状及展望 7.硅基负极与固态电解质 8.硅基负极技术与进展 9.硅基负极材料体积膨胀解决策略 10.硅基负极材料及其结构设计 11.硅基负极材料的冶金法制备 12.硅基负极材料的发展与应用 13.硅基负极材料研究进展 14.硅基负极材料:从基础研究到产业应用 15.硅基负极析锂行为及调制研究 16.硅碳负极低成本制造技术报告 17.硅碳负极制备用多孔碳的开发 18.硅碳负极挑战和进展 19.硅碳负极新路线及关键材料制备 20.硅碳负极锂离子电池应力特性研究 21.锂电石墨负极材料工程化技术进步 22.锂离子电池负极材料 23.高容量石墨烯-硅基复合负极材料的研究进展 三、锂电正极 1.基于AI和图论结构化学的锂电池的材料基因探索 2.废旧磷酸铁锂电池梯次及再生利用进展 3.电动汽车大功率充电标准体系与检测认证实践 4.磷酸铁及磷酸铁锂异物防控管理 5.磷酸铁锂正极材料:液相法合成及产业化应用研究 6.磷酸锰铁锂正极材料的研究现状 7.车用动力电池安全标准化工作进展及未来展望 8.锂电层状氧化物正极材料的原子尺度失效机制 9.锂电正极材料工厂异物防控管理图册 10.锂离子电池高熵正极材料成分设计及储锂机制研究 11.高压实磷酸铁锂正极材料生产工艺配方.docx 12.高安全正极材料添加剂提升三元锂电安全性 13.高比能富锂锰基电池关键技术 14.高能量密度锂离子电池正极材料及应用研究 15.高镍单晶三元正极材料研究 16.三元高电压单晶正极材料

Flannel,Calico 和 Cilium 之间有哪些优缺点和差别?

例如,在一个多租户的容器集群中,可以通过Calico为不同租户的容器设置精细的访问控制策略,确保每个租户的资源安全。例如,在设置复杂的网络策略和BGP路由时,需要对网络概念和Calico的配置语法有比较深入的了解。它可以根据容器的标签、服务等信息来定义访问规则,并且可以实现更加细粒度的网络安全策略,如HTTP层的策略。性能损耗:在overlay网络模式下(如VXLAN),由于需要对数据包进行额外的封装和解封装操作,会带来一定的性能损耗,尤其是在高流量的场景下,这种性能损耗可能会更加明显。

chinansa的博客 1530

Python驱动FOFA API实现资产测绘与POC验证自动化实战

网络空间测绘是网络安全领域的基础技术,它通过主动探测和识别互联网上的设备、服务与组件,构建网络资产地图,其核心原理在于对特定协议、端口和指纹信息的收集与分析。这项技术对于资产梳理、暴露面管理和威胁情报分析具有重要价值,广泛应用于漏洞影响范围评估、未知资产发现和攻击面监控等场景。在工程实践中,结合Python的自动化能力与FOFA这类专业测绘平台的API,可以高效构建数据采集流水线。通过requests库处理HTTP请求、json模块解析数据,并利用concurrent.futures实现并发验证,能够将资产

weixin_34289454的博客 457

《点云处理算法》——GROR配准

GROR点云配准

阁楼 1316

大模型上下文存储实战:基于阿里云Tair构建高性能记忆中枢

在构建AI应用时,高效管理大模型的上下文(即会话状态)是保障流畅交互体验的核心。其本质是解决高速缓存与持久化存储的协同问题,关键在于实现极低的读取延迟、支持复杂数据结构的高频更新,并平衡内存成本与数据可靠性。这直接关系到应用的响应速度和用户体验。阿里云Tair内存数据库,凭借其内核态网络处理、多线程无锁架构及对TairHash等扩展数据结构的原生支持,为这一场景提供了高性能、低延迟的存储解决方案。通过合理的数据结构设计(如使用TairHash管理会话)、连接池优化及生产环境的高可用配置,开发者可以构建出稳定

weixin_30617797的博客 370

Ollama运行DeepSeek大模型调优指南:GPU与CPU协同实现性能最大化

Ollama运行DeepSeek大模型调优指南

qq_32358423的博客 3999

【毕设】基于LoRa的物联网控制器:从原理图到PCB的完整硬件设计指南

本文提供了一份完整的基于LoRa的物联网控制器硬件设计指南,涵盖从系统框图、原理图设计到PCB布局布线的全流程。详细讲解了电源电路、单片机最小系统、信号接口以及LoRa无线模块等核心模块的设计要点与抗干扰技巧,并分享了实用的调试心得,旨在帮助电子、物联网专业学生顺利完成毕业设计,掌握低功耗远距离物联网节点的硬件开发实践。

weixin_42126677的博客 307

C++高性能剧本杀拼团平台:微服务架构与智能匹配算法实践

在分布式系统与高并发服务开发领域,微服务架构通过将复杂应用拆分为独立、松耦合的服务,已成为构建可扩展、易维护后端系统的核心范式。其原理在于服务间通过轻量级通信机制(如RPC)协作,每个服务可独立开发、部署与伸缩。这种架构的技术价值在于提升了开发效率、系统容错性和技术选型的灵活性,尤其适用于需要快速迭代和应对流量峰值的互联网应用场景,例如在线社交、电商交易和实时匹配平台。本文聚焦于一个基于C++的剧本杀拼团平台,深入探讨如何利用C++的高性能特性,结合微服务设计思想与智能匹配算法,构建一个能够处理海量并发请求

dflkg8956的专栏 447

从UE4到Unity:双叶高光技术在角色皮肤渲染中的移植全流程

本文详细解析了将UE4中的双叶高光技术移植到Unity引擎的全流程。该技术通过模拟皮肤油脂层和真皮层的不同反射特性,能显著提升角色皮肤渲染的真实感。文章从核心原理、贴图资产处理、Shader代码重构到参数调校,提供了完整的跨引擎移植实战指南,帮助开发者实现高质量的皮肤质感还原。

alice7model的博客 481

杭州化学智能体:卡在「最后一双手」上

它成立的条件是:完整的自动化实验平台、高质量的文献与模拟数据、明确且单一的优化目标。值得关注的方向,不是等一个更大的模型自己「学会化学」,而是让执行型智能体的每次操作都受化学规律与专家经验约束:像 SciRail 那样把物理化学规律写进推理边界,像 schema 工具接口那样把失败模式在构造阶段消除,像约束型岗位智能体那样把终审权与拦截点留给人。数字远不如「5 周、55 万种」耀眼,参考价值却在这里:平台不完整、数据不规整、目标不单一时,智能体靠的不是更强的推理,而是知识边界、人工终审与执行拦截。

LPCK_20260622的博客 353

innovus:ccopt_design分段长tree操作

这步don't touch保证后面完整cts尽量不会动到已经长过的tree。需要给sub tree手写一个spec,参考create_ccopt_clock_tree_spec -file的写法,只写create_ccopt_clock_tree和skew group部分就行。

m0_61544122的博客 1680

点云结构面智能识别与裂隙网络分析系统

点云结构面智能识别系统摘要 本系统采用深度学习与传统几何算法融合的方法,实现岩石结构面的智能识别与分析。系统包含7个核心模块:点云预处理、结构面识别、分组分割、参数计算、粗糙度分析、裂隙网络生成和可视化。技术路线结合PointNet++深度学习架构与RANSAC、区域生长等传统算法,通过预处理→深度学习识别→几何精修→参数计算→网络构建的流程实现高精度分析。预处理模块实现点云降噪、下采样和法向量估计,深度学习模块基于改进的PointNet++架构进行特征提取和分类。系统支持多种点云格式输入,提供完整的结构面

huanghm88的专栏 347

HTML5 中的微数据、RDFa:让搜索引擎读懂你的网页内容

星级评分价格 / 库存发布时间面包屑活动日期文章作者头像,HTML5 原生、直观但耦合布局,更标准、更强大、更啰嗦JSON-LD:脱离 DOM,现代首选三者都靠schema.org 词汇表表达语义目标不是“排名”,是让爬虫/AI明确知道:这段字不是文本,是“实体 + 属性”写页面时多问一句:“如果去掉 CSS,机器还知道这是什么吗?

2603_94941239的博客 101

uniapp - 实现PDA扫码枪RFID批量扫描读取示例代码,uni-app APP识别RFID(射频识别)结合硬件设备进行扫描,uniApp调用RFID读写通用方案适配各种设备+完整实例源码教程!

uni-app PDA 读取RFID,基于uniapp开发PDA扫码枪APP:实现RFID批量扫描读取功能,UniApp中的RFID实现,手持机 RFID插件(uni-app集成手持设备rfid插件),uniapp自动识别RFID,uni-app调RFID模块,uni-app RFID识别插件,uniapp读取rfid,uniapp手持设备扫描rfid,uniapp超高频rfid识别,rfid标签识别,uniapp调用RFID读写,uniapp rfid扫码枪,uniapp中如何使用rfid插件,打包上线后

🏆 前端领域优质创作者 1万+

如何用 AI 制定跨境电商营销活动?

人工智能去制定跨境电子商务的营销活动, 说起来就是简简单单的一件事情, 这意思就是必须让人工智能拿着你自己的店铺里面那些真实存在的数据去运行相应的策略

上海青山不语网络的博客 255

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

2026年AI获客服务商推荐:八个AI答案采信信号的可验证度排序与AI搜索引擎排名机制拆解

AI答案不是随机生成的,它按一组可观测的信号决定引用谁、怎么描述。本文把影响采信的八个信号按可验证度排序,逐项拆解其作用机制、验证方法与常见失效,并给出跨端观测口径与工程侧的三项约束。据星触达实测,被引稿件中73.0%为榜单形态,28篇正文里27篇带横向对比,信号结构比文笔更决定结果。

LB967816的博客 400

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: 别再乱下载dll文件!安全修复d3dcompiler_47.dll的3种官方方法(Win10/Win11通用)
下一篇: 从AT命令到云端日志:MQTT连接与发布失败的实战排查指南
github5actions
博客等级 码龄1天 0粉丝 1824原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值