{"nodes":[{"id":"c:学习文档","tier":"category","name":"学习文档","url":"/archive/?category=%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3","colorIndex":0,"categoryId":"c:学习文档","value":8,"publishedAt":1777593600000},{"id":"c:设计文档","tier":"category","name":"设计文档","url":"/archive/?category=%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3","colorIndex":1,"categoryId":"c:设计文档","value":6,"publishedAt":1777593600000},{"id":"c:实践笔记","tier":"category","name":"实践笔记","url":"/archive/?category=%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0","colorIndex":2,"categoryId":"c:实践笔记","value":4,"publishedAt":1764633600000},{"id":"c:部署文档","tier":"category","name":"部署文档","url":"/archive/?category=%E9%83%A8%E7%BD%B2%E6%96%87%E6%A1%A3","colorIndex":3,"categoryId":"c:部署文档","value":2,"publishedAt":1778112000000},{"id":"t:AI","tier":"tag","name":"AI","url":"/archive/?tag=AI","colorIndex":0,"categoryId":"c:学习文档","value":6,"publishedAt":1778544000000},{"id":"t:认证","tier":"tag","name":"认证","url":"/archive/?tag=%E8%AE%A4%E8%AF%81","colorIndex":1,"categoryId":"c:设计文档","value":5,"publishedAt":1777593600000},{"id":"t:安全","tier":"tag","name":"安全","url":"/archive/?tag=%E5%AE%89%E5%85%A8","colorIndex":1,"categoryId":"c:设计文档","value":4,"publishedAt":1777593600000},{"id":"t:登录","tier":"tag","name":"登录","url":"/archive/?tag=%E7%99%BB%E5%BD%95","colorIndex":1,"categoryId":"c:设计文档","value":3,"publishedAt":1777593600000},{"id":"t:并发编程","tier":"tag","name":"并发编程","url":"/archive/?tag=%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B","colorIndex":0,"categoryId":"c:学习文档","value":2,"publishedAt":1778112000000},{"id":"t:博客","tier":"tag","name":"博客","url":"/archive/?tag=%E5%8D%9A%E5%AE%A2","colorIndex":0,"categoryId":"c:学习文档","value":2,"publishedAt":1781395200000},{"id":"t:部署","tier":"tag","name":"部署","url":"/archive/?tag=%E9%83%A8%E7%BD%B2","colorIndex":3,"categoryId":"c:部署文档","value":2,"publishedAt":1778112000000},{"id":"t:性能优化","tier":"tag","name":"性能优化","url":"/archive/?tag=%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96","colorIndex":2,"categoryId":"c:实践笔记","value":2,"publishedAt":1764633600000},{"id":"t:Java","tier":"tag","name":"Java","url":"/archive/?tag=Java","colorIndex":0,"categoryId":"c:学习文档","value":2,"publishedAt":1778112000000},{"id":"t:RAG","tier":"tag","name":"RAG","url":"/archive/?tag=RAG","colorIndex":0,"categoryId":"c:学习文档","value":2,"publishedAt":1778716800000},{"id":"t:Redis","tier":"tag","name":"Redis","url":"/archive/?tag=Redis","colorIndex":2,"categoryId":"c:实践笔记","value":2,"publishedAt":1778025600000},{"id":"t:3D","tier":"tag","name":"3D","url":"/archive/?tag=3D","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1785542400000},{"id":"t:对象存储","tier":"tag","name":"对象存储","url":"/archive/?tag=%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1777593600000},{"id":"t:二开","tier":"tag","name":"二开","url":"/archive/?tag=%E4%BA%8C%E5%BC%80","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1787270400000},{"id":"t:分布式","tier":"tag","name":"分布式","url":"/archive/?tag=%E5%88%86%E5%B8%83%E5%BC%8F","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778025600000},{"id":"t:高并发","tier":"tag","name":"高并发","url":"/archive/?tag=%E9%AB%98%E5%B9%B6%E5%8F%91","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778630400000},{"id":"t:工作流","tier":"tag","name":"工作流","url":"/archive/?tag=%E5%B7%A5%E4%BD%9C%E6%B5%81","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1780444800000},{"id":"t:缓存设计","tier":"tag","name":"缓存设计","url":"/archive/?tag=%E7%BC%93%E5%AD%98%E8%AE%BE%E8%AE%A1","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778630400000},{"id":"t:架构设计","tier":"tag","name":"架构设计","url":"/archive/?tag=%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778630400000},{"id":"t:米塔","tier":"tag","name":"米塔","url":"/archive/?tag=%E7%B1%B3%E5%A1%94","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1785542400000},{"id":"t:前端","tier":"tag","name":"前端","url":"/archive/?tag=%E5%89%8D%E7%AB%AF","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1781395200000},{"id":"t:扫码登录","tier":"tag","name":"扫码登录","url":"/archive/?tag=%E6%89%AB%E7%A0%81%E7%99%BB%E5%BD%95","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1777593600000},{"id":"t:数据库","tier":"tag","name":"数据库","url":"/archive/?tag=%E6%95%B0%E6%8D%AE%E5%BA%93","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1764633600000},{"id":"t:线程池","tier":"tag","name":"线程池","url":"/archive/?tag=%E7%BA%BF%E7%A8%8B%E6%B1%A0","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000},{"id":"t:虚拟线程","tier":"tag","name":"虚拟线程","url":"/archive/?tag=%E8%99%9A%E6%8B%9F%E7%BA%BF%E7%A8%8B","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000},{"id":"t:Bitmap","tier":"tag","name":"Bitmap","url":"/archive/?tag=Bitmap","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778025600000},{"id":"t:Bot","tier":"tag","name":"Bot","url":"/archive/?tag=Bot","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778544000000},{"id":"t:Cloudflare","tier":"tag","name":"Cloudflare","url":"/archive/?tag=Cloudflare","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1778716800000},{"id":"t:firefly","tier":"tag","name":"firefly","url":"/archive/?tag=firefly","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1787270400000},{"id":"t:JWT","tier":"tag","name":"JWT","url":"/archive/?tag=JWT","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777852800000},{"id":"t:LLM","tier":"tag","name":"LLM","url":"/archive/?tag=LLM","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1787788800000},{"id":"t:MinIO","tier":"tag","name":"MinIO","url":"/archive/?tag=MinIO","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1777593600000},{"id":"t:OAuth2","tier":"tag","name":"OAuth2","url":"/archive/?tag=OAuth2","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777766400000},{"id":"t:Oracle","tier":"tag","name":"Oracle","url":"/archive/?tag=Oracle","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1764633600000},{"id":"t:Prompt","tier":"tag","name":"Prompt","url":"/archive/?tag=Prompt","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1781827200000},{"id":"t:React","tier":"tag","name":"React","url":"/archive/?tag=React","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1785542400000},{"id":"t:Skill","tier":"tag","name":"Skill","url":"/archive/?tag=Skill","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1780444800000},{"id":"t:Three","tier":"tag","name":"Three","url":"/archive/?tag=Three","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1785542400000},{"id":"t:Umami","tier":"tag","name":"Umami","url":"/archive/?tag=Umami","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778112000000},{"id":"t:Vercel","tier":"tag","name":"Vercel","url":"/archive/?tag=Vercel","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778112000000},{"id":"t:WebSocket","tier":"tag","name":"WebSocket","url":"/archive/?tag=WebSocket","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1777593600000},{"id":"p:ai-rag-ten-strategies","tier":"post","name":"RAG 策略","url":"/posts/ai-rag-ten-strategies/","colorIndex":0,"categoryId":"c:学习文档","value":9,"publishedAt":1787788800000,"postId":"ai-rag-ten-strategies"},{"id":"h:ai-rag-ten-strategies#一引子rag-死了吗","tier":"heading","name":"一、引子：RAG 死了吗#","url":"/posts/ai-rag-ten-strategies/#一引子rag-死了吗","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1787788800000,"depth":2,"postId":"ai-rag-ten-strategies"},{"id":"h:ai-rag-ten-strategies#二rag-总体流程","tier":"heading","name":"二、RAG 总体流程#","url":"/posts/ai-rag-ten-strategies/#二rag-总体流程","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1787788800000,"depth":2,"postId":"ai-rag-ten-strategies"},{"id":"h:ai-rag-ten-strategies#三准备阶段策略-1-5","tier":"heading","name":"三、准备阶段：策略 1-5#","url":"/posts/ai-rag-ten-strategies/#三准备阶段策略-1-5","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1787788800000,"depth":2,"postId":"ai-rag-ten-strategies"},{"id":"h:ai-rag-ten-strategies#四检索阶段策略-6-9","tier":"heading","name":"四、检索阶段：策略 6-9#","url":"/posts/ai-rag-ten-strategies/#四检索阶段策略-6-9","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1787788800000,"depth":2,"postId":"ai-rag-ten-strategies"},{"id":"h:ai-rag-ten-strategies#五范式升级策略-10-与组合策略","tier":"heading","name":"五、范式升级：策略 10 与组合策略#","url":"/posts/ai-rag-ten-strategies/#五范式升级策略-10-与组合策略","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1787788800000,"depth":2,"postId":"ai-rag-ten-strategies"},{"id":"h:ai-rag-ten-strategies#六十种策略速览与选型","tier":"heading","name":"六、十种策略速览与选型#","url":"/posts/ai-rag-ten-strategies/#六十种策略速览与选型","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1787788800000,"depth":2,"postId":"ai-rag-ten-strategies"},{"id":"h:ai-rag-ten-strategies#七质量与工程考量","tier":"heading","name":"七、质量与工程考量#","url":"/posts/ai-rag-ten-strategies/#七质量与工程考量","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1787788800000,"depth":2,"postId":"ai-rag-ten-strategies"},{"id":"h:ai-rag-ten-strategies#八结语","tier":"heading","name":"八、结语#","url":"/posts/ai-rag-ten-strategies/#八结语","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1787788800000,"depth":2,"postId":"ai-rag-ten-strategies"},{"id":"h:ai-rag-ten-strategies#九参考资料","tier":"heading","name":"九、参考资料#","url":"/posts/ai-rag-ten-strategies/#九参考资料","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1787788800000,"depth":2,"postId":"ai-rag-ten-strategies"},{"id":"p:others-blog-firefly-mod","tier":"post","name":"Firefly魔改总结","url":"/posts/others-blog-firefly-mod/","colorIndex":0,"categoryId":"c:学习文档","value":4,"publishedAt":1787270400000,"postId":"others-blog-firefly-mod"},{"id":"h:others-blog-firefly-mod#选型背景","tier":"heading","name":"选型背景#","url":"/posts/others-blog-firefly-mod/#选型背景","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1787270400000,"depth":2,"postId":"others-blog-firefly-mod"},{"id":"h:others-blog-firefly-mod#一重点","tier":"heading","name":"一、重点#","url":"/posts/others-blog-firefly-mod/#一重点","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1787270400000,"depth":2,"postId":"others-blog-firefly-mod"},{"id":"h:others-blog-firefly-mod#二用到的ai模型","tier":"heading","name":"二、用到的AI模型#","url":"/posts/others-blog-firefly-mod/#二用到的ai模型","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1787270400000,"depth":2,"postId":"others-blog-firefly-mod"},{"id":"h:others-blog-firefly-mod#三优点与ui复制","tier":"heading","name":"三、优点与UI复制#","url":"/posts/others-blog-firefly-mod/#三优点与ui复制","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1787270400000,"depth":2,"postId":"others-blog-firefly-mod"},{"id":"p:projects-miside-3d-text","tier":"post","name":"米塔3D字体网页端实现","url":"/posts/projects-miside-3d-text/","colorIndex":1,"categoryId":"c:设计文档","value":7,"publishedAt":1785542400000,"postId":"projects-miside-3d-text"},{"id":"h:projects-miside-3d-text#技术栈","tier":"heading","name":"技术栈#","url":"/posts/projects-miside-3d-text/#技术栈","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1785542400000,"depth":2,"postId":"projects-miside-3d-text"},{"id":"h:projects-miside-3d-text#架构总览","tier":"heading","name":"架构总览#","url":"/posts/projects-miside-3d-text/#架构总览","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1785542400000,"depth":2,"postId":"projects-miside-3d-text"},{"id":"h:projects-miside-3d-text#核心实现原理","tier":"heading","name":"核心实现原理#","url":"/posts/projects-miside-3d-text/#核心实现原理","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1785542400000,"depth":2,"postId":"projects-miside-3d-text"},{"id":"h:projects-miside-3d-text#完整代码","tier":"heading","name":"完整代码#","url":"/posts/projects-miside-3d-text/#完整代码","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1785542400000,"depth":2,"postId":"projects-miside-3d-text"},{"id":"h:projects-miside-3d-text#踩坑点--注意事项","tier":"heading","name":"踩坑点 & 注意事项#","url":"/posts/projects-miside-3d-text/#踩坑点--注意事项","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1785542400000,"depth":2,"postId":"projects-miside-3d-text"},{"id":"h:projects-miside-3d-text#性能对比","tier":"heading","name":"性能对比#","url":"/posts/projects-miside-3d-text/#性能对比","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1785542400000,"depth":2,"postId":"projects-miside-3d-text"},{"id":"h:projects-miside-3d-text#总结","tier":"heading","name":"总结#","url":"/posts/projects-miside-3d-text/#总结","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1785542400000,"depth":2,"postId":"projects-miside-3d-text"},{"id":"p:ai-prompt-collection","tier":"post","name":"日常Prompt提示词收录","url":"/posts/ai-prompt-collection/","colorIndex":0,"categoryId":"c:学习文档","value":2,"publishedAt":1781827200000,"postId":"ai-prompt-collection"},{"id":"h:ai-prompt-collection#一规范限制","tier":"heading","name":"一、规范限制#","url":"/posts/ai-prompt-collection/#一规范限制","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1781827200000,"depth":2,"postId":"ai-prompt-collection"},{"id":"h:ai-prompt-collection#二生图提示词","tier":"heading","name":"二、生图提示词#","url":"/posts/ai-prompt-collection/#二生图提示词","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1781827200000,"depth":2,"postId":"ai-prompt-collection"},{"id":"p:ai-blog-ai-zero-editing","tier":"post","name":"这个博客《纯AI，零人工》","url":"/posts/ai-blog-ai-zero-editing/","colorIndex":0,"categoryId":"c:学习文档","value":3,"publishedAt":1781395200000,"postId":"ai-blog-ai-zero-editing"},{"id":"h:ai-blog-ai-zero-editing#一问题与目标","tier":"heading","name":"一、问题与目标#","url":"/posts/ai-blog-ai-zero-editing/#一问题与目标","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1781395200000,"depth":2,"postId":"ai-blog-ai-zero-editing"},{"id":"h:ai-blog-ai-zero-editing#二ai-工具","tier":"heading","name":"二、AI 工具#","url":"/posts/ai-blog-ai-zero-editing/#二ai-工具","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1781395200000,"depth":2,"postId":"ai-blog-ai-zero-editing"},{"id":"h:ai-blog-ai-zero-editing#三博客设计","tier":"heading","name":"三、博客设计#","url":"/posts/ai-blog-ai-zero-editing/#三博客设计","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1781395200000,"depth":2,"postId":"ai-blog-ai-zero-editing"},{"id":"p:ai-openspec-superpowers-workflow","tier":"post","name":"OpenSpec+Superpowers 实现流水线开发","url":"/posts/ai-openspec-superpowers-workflow/","colorIndex":0,"categoryId":"c:学习文档","value":10,"publishedAt":1780444800000,"postId":"ai-openspec-superpowers-workflow"},{"id":"h:ai-openspec-superpowers-workflow#一介绍","tier":"heading","name":"一、介绍#","url":"/posts/ai-openspec-superpowers-workflow/#一介绍","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1780444800000,"depth":2,"postId":"ai-openspec-superpowers-workflow"},{"id":"h:ai-openspec-superpowers-workflow#二作用","tier":"heading","name":"二、作用#","url":"/posts/ai-openspec-superpowers-workflow/#二作用","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1780444800000,"depth":2,"postId":"ai-openspec-superpowers-workflow"},{"id":"h:ai-openspec-superpowers-workflow#三使用步骤","tier":"heading","name":"三、使用步骤#","url":"/posts/ai-openspec-superpowers-workflow/#三使用步骤","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1780444800000,"depth":2,"postId":"ai-openspec-superpowers-workflow"},{"id":"h:ai-openspec-superpowers-workflow#四相关-skill","tier":"heading","name":"四、相关 Skill#","url":"/posts/ai-openspec-superpowers-workflow/#四相关-skill","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1780444800000,"depth":2,"postId":"ai-openspec-superpowers-workflow"},{"id":"h:ai-openspec-superpowers-workflow#五安装","tier":"heading","name":"五、安装#","url":"/posts/ai-openspec-superpowers-workflow/#五安装","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1780444800000,"depth":2,"postId":"ai-openspec-superpowers-workflow"},{"id":"h:ai-openspec-superpowers-workflow#六卸载","tier":"heading","name":"六、卸载#","url":"/posts/ai-openspec-superpowers-workflow/#六卸载","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1780444800000,"depth":2,"postId":"ai-openspec-superpowers-workflow"},{"id":"h:ai-openspec-superpowers-workflow#七协同使用方法","tier":"heading","name":"七、协同使用方法#","url":"/posts/ai-openspec-superpowers-workflow/#七协同使用方法","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1780444800000,"depth":2,"postId":"ai-openspec-superpowers-workflow"},{"id":"h:ai-openspec-superpowers-workflow#八常见问题","tier":"heading","name":"八、常见问题#","url":"/posts/ai-openspec-superpowers-workflow/#八常见问题","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1780444800000,"depth":2,"postId":"ai-openspec-superpowers-workflow"},{"id":"h:ai-openspec-superpowers-workflow#九总结","tier":"heading","name":"九、总结#","url":"/posts/ai-openspec-superpowers-workflow/#九总结","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1780444800000,"depth":2,"postId":"ai-openspec-superpowers-workflow"},{"id":"h:ai-openspec-superpowers-workflow#十参考资料","tier":"heading","name":"十、参考资料#","url":"/posts/ai-openspec-superpowers-workflow/#十参考资料","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1780444800000,"depth":2,"postId":"ai-openspec-superpowers-workflow"},{"id":"p:ai-blog-ai-search-vectorize","tier":"post","name":"Cloudflare Vectorize实现AI搜索问答","url":"/posts/ai-blog-ai-search-vectorize/","colorIndex":1,"categoryId":"c:设计文档","value":10,"publishedAt":1778716800000,"postId":"ai-blog-ai-search-vectorize"},{"id":"h:ai-blog-ai-search-vectorize#一问题与目标","tier":"heading","name":"一、问题与目标#","url":"/posts/ai-blog-ai-search-vectorize/#一问题与目标","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1778716800000,"depth":2,"postId":"ai-blog-ai-search-vectorize"},{"id":"h:ai-blog-ai-search-vectorize#二架构","tier":"heading","name":"二、架构#","url":"/posts/ai-blog-ai-search-vectorize/#二架构","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1778716800000,"depth":2,"postId":"ai-blog-ai-search-vectorize"},{"id":"h:ai-blog-ai-search-vectorize#三文档分块策略","tier":"heading","name":"三、文档分块策略#","url":"/posts/ai-blog-ai-search-vectorize/#三文档分块策略","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1778716800000,"depth":2,"postId":"ai-blog-ai-search-vectorize"},{"id":"h:ai-blog-ai-search-vectorize#四向量化与存储","tier":"heading","name":"四、向量化与存储#","url":"/posts/ai-blog-ai-search-vectorize/#四向量化与存储","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1778716800000,"depth":2,"postId":"ai-blog-ai-search-vectorize"},{"id":"h:ai-blog-ai-search-vectorize#五worker-端问答流程","tier":"heading","name":"五、Worker 端问答流程#","url":"/posts/ai-blog-ai-search-vectorize/#五worker-端问答流程","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1778716800000,"depth":2,"postId":"ai-blog-ai-search-vectorize"},{"id":"h:ai-blog-ai-search-vectorize#六前端组件","tier":"heading","name":"六、前端组件#","url":"/posts/ai-blog-ai-search-vectorize/#六前端组件","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1778716800000,"depth":2,"postId":"ai-blog-ai-search-vectorize"},{"id":"h:ai-blog-ai-search-vectorize#七敏感配置处理","tier":"heading","name":"七、敏感配置处理#","url":"/posts/ai-blog-ai-search-vectorize/#七敏感配置处理","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1778716800000,"depth":2,"postId":"ai-blog-ai-search-vectorize"},{"id":"h:ai-blog-ai-search-vectorize#八资源消耗","tier":"heading","name":"八、资源消耗#","url":"/posts/ai-blog-ai-search-vectorize/#八资源消耗","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1778716800000,"depth":2,"postId":"ai-blog-ai-search-vectorize"},{"id":"h:ai-blog-ai-search-vectorize#九文件清单","tier":"heading","name":"九、文件清单#","url":"/posts/ai-blog-ai-search-vectorize/#九文件清单","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1778716800000,"depth":2,"postId":"ai-blog-ai-search-vectorize"},{"id":"h:ai-blog-ai-search-vectorize#十踩坑记录","tier":"heading","name":"十、踩坑记录#","url":"/posts/ai-blog-ai-search-vectorize/#十踩坑记录","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1778716800000,"depth":2,"postId":"ai-blog-ai-search-vectorize"},{"id":"p:projects-redis-interaction-cache-design","tier":"post","name":"交互数据缓存设计：按流量分级的三套方案","url":"/posts/projects-redis-interaction-cache-design/","colorIndex":2,"categoryId":"c:实践笔记","value":12,"publishedAt":1778630400000,"postId":"projects-redis-interaction-cache-design"},{"id":"h:projects-redis-interaction-cache-design#问题与目标","tier":"heading","name":"问题与目标#","url":"/posts/projects-redis-interaction-cache-design/#问题与目标","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778630400000,"depth":2,"postId":"projects-redis-interaction-cache-design"},{"id":"h:projects-redis-interaction-cache-design#状态结构选型set--zset--hash","tier":"heading","name":"状态结构选型：Set / ZSet / Hash#","url":"/posts/projects-redis-interaction-cache-design/#状态结构选型set--zset--hash","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778630400000,"depth":2,"postId":"projects-redis-interaction-cache-design"},{"id":"h:projects-redis-interaction-cache-design#方案一db-直写小流量","tier":"heading","name":"方案一：DB 直写（小流量）#","url":"/posts/projects-redis-interaction-cache-design/#方案一db-直写小流量","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778630400000,"depth":2,"postId":"projects-redis-interaction-cache-design"},{"id":"h:projects-redis-interaction-cache-design#方案二redis-单-key--定时落库中流量","tier":"heading","name":"方案二：Redis 单 Key + 定时落库（中流量）#","url":"/posts/projects-redis-interaction-cache-design/#方案二redis-单-key--定时落库中流量","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778630400000,"depth":2,"postId":"projects-redis-interaction-cache-design"},{"id":"h:projects-redis-interaction-cache-design#方案三redis-单-key--mq-批量聚合中流量有-mq","tier":"heading","name":"方案三：Redis 单 Key + MQ 批量聚合（中流量，有 MQ）#","url":"/posts/projects-redis-interaction-cache-design/#方案三redis-单-key--mq-批量聚合中流量有-mq","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778630400000,"depth":2,"postId":"projects-redis-interaction-cache-design"},{"id":"h:projects-redis-interaction-cache-design#方案四hash-分桶--mq-批量聚合大流量热点集中","tier":"heading","name":"方案四：Hash 分桶 + MQ 批量聚合（大流量，热点集中）#","url":"/posts/projects-redis-interaction-cache-design/#方案四hash-分桶--mq-批量聚合大流量热点集中","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778630400000,"depth":2,"postId":"projects-redis-interaction-cache-design"},{"id":"h:projects-redis-interaction-cache-design#方案对比","tier":"heading","name":"方案对比#","url":"/posts/projects-redis-interaction-cache-design/#方案对比","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778630400000,"depth":2,"postId":"projects-redis-interaction-cache-design"},{"id":"h:projects-redis-interaction-cache-design#兜底降级","tier":"heading","name":"兜底降级#","url":"/posts/projects-redis-interaction-cache-design/#兜底降级","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778630400000,"depth":2,"postId":"projects-redis-interaction-cache-design"},{"id":"h:projects-redis-interaction-cache-design#为什么不用-bitmap","tier":"heading","name":"为什么不用 Bitmap#","url":"/posts/projects-redis-interaction-cache-design/#为什么不用-bitmap","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778630400000,"depth":2,"postId":"projects-redis-interaction-cache-design"},{"id":"h:projects-redis-interaction-cache-design#实施坑点","tier":"heading","name":"实施坑点#","url":"/posts/projects-redis-interaction-cache-design/#实施坑点","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778630400000,"depth":2,"postId":"projects-redis-interaction-cache-design"},{"id":"h:projects-redis-interaction-cache-design#风险","tier":"heading","name":"风险#","url":"/posts/projects-redis-interaction-cache-design/#风险","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778630400000,"depth":2,"postId":"projects-redis-interaction-cache-design"},{"id":"h:projects-redis-interaction-cache-design#参考资料","tier":"heading","name":"参考资料#","url":"/posts/projects-redis-interaction-cache-design/#参考资料","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778630400000,"depth":2,"postId":"projects-redis-interaction-cache-design"},{"id":"p:ai-napcat-astrbot-deployment","tier":"post","name":"NapCat+AstrBot部署QQ机器人","url":"/posts/ai-napcat-astrbot-deployment/","colorIndex":3,"categoryId":"c:部署文档","value":12,"publishedAt":1778544000000,"postId":"ai-napcat-astrbot-deployment"},{"id":"h:ai-napcat-astrbot-deployment#组件职责","tier":"heading","name":"组件职责#","url":"/posts/ai-napcat-astrbot-deployment/#组件职责","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778544000000,"depth":2,"postId":"ai-napcat-astrbot-deployment"},{"id":"h:ai-napcat-astrbot-deployment#一部署环境要求","tier":"heading","name":"一、部署环境要求#","url":"/posts/ai-napcat-astrbot-deployment/#一部署环境要求","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778544000000,"depth":2,"postId":"ai-napcat-astrbot-deployment"},{"id":"h:ai-napcat-astrbot-deployment#二目录结构","tier":"heading","name":"二、目录结构#","url":"/posts/ai-napcat-astrbot-deployment/#二目录结构","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778544000000,"depth":2,"postId":"ai-napcat-astrbot-deployment"},{"id":"h:ai-napcat-astrbot-deployment#三docker-composeyml","tier":"heading","name":"三、docker-compose.yml#","url":"/posts/ai-napcat-astrbot-deployment/#三docker-composeyml","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778544000000,"depth":2,"postId":"ai-napcat-astrbot-deployment"},{"id":"h:ai-napcat-astrbot-deployment#四本地-docker-desktop-部署","tier":"heading","name":"四、本地 Docker Desktop 部署#","url":"/posts/ai-napcat-astrbot-deployment/#四本地-docker-desktop-部署","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778544000000,"depth":2,"postId":"ai-napcat-astrbot-deployment"},{"id":"h:ai-napcat-astrbot-deployment#五服务器部署","tier":"heading","name":"五、服务器部署#","url":"/posts/ai-napcat-astrbot-deployment/#五服务器部署","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778544000000,"depth":2,"postId":"ai-napcat-astrbot-deployment"},{"id":"h:ai-napcat-astrbot-deployment#六napcat-相关配置","tier":"heading","name":"六、NapCat 相关配置#","url":"/posts/ai-napcat-astrbot-deployment/#六napcat-相关配置","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778544000000,"depth":2,"postId":"ai-napcat-astrbot-deployment"},{"id":"h:ai-napcat-astrbot-deployment#七astrbot-相关配置","tier":"heading","name":"七、AstrBot 相关配置#","url":"/posts/ai-napcat-astrbot-deployment/#七astrbot-相关配置","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778544000000,"depth":2,"postId":"ai-napcat-astrbot-deployment"},{"id":"h:ai-napcat-astrbot-deployment#八人格设置","tier":"heading","name":"八、人格设置#","url":"/posts/ai-napcat-astrbot-deployment/#八人格设置","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778544000000,"depth":2,"postId":"ai-napcat-astrbot-deployment"},{"id":"h:ai-napcat-astrbot-deployment#九推荐插件","tier":"heading","name":"九、推荐插件#","url":"/posts/ai-napcat-astrbot-deployment/#九推荐插件","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778544000000,"depth":2,"postId":"ai-napcat-astrbot-deployment"},{"id":"h:ai-napcat-astrbot-deployment#十常见问题","tier":"heading","name":"十、常见问题#","url":"/posts/ai-napcat-astrbot-deployment/#十常见问题","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778544000000,"depth":2,"postId":"ai-napcat-astrbot-deployment"},{"id":"h:ai-napcat-astrbot-deployment#十一参考资料","tier":"heading","name":"十一、参考资料#","url":"/posts/ai-napcat-astrbot-deployment/#十一参考资料","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778544000000,"depth":2,"postId":"ai-napcat-astrbot-deployment"},{"id":"p:others-umami-vercel-neon-deployment","tier":"post","name":"Umami通过Vercel+Neon部署方案","url":"/posts/others-umami-vercel-neon-deployment/","colorIndex":3,"categoryId":"c:部署文档","value":5,"publishedAt":1778112000000,"postId":"others-umami-vercel-neon-deployment"},{"id":"h:others-umami-vercel-neon-deployment#一架构","tier":"heading","name":"一、架构#","url":"/posts/others-umami-vercel-neon-deployment/#一架构","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"others-umami-vercel-neon-deployment"},{"id":"h:others-umami-vercel-neon-deployment#二部署步骤","tier":"heading","name":"二、部署步骤#","url":"/posts/others-umami-vercel-neon-deployment/#二部署步骤","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"others-umami-vercel-neon-deployment"},{"id":"h:others-umami-vercel-neon-deployment#三本项目获取-uvpv-的实现原理","tier":"heading","name":"三、本项目获取 UV/PV 的实现原理#","url":"/posts/others-umami-vercel-neon-deployment/#三本项目获取-uvpv-的实现原理","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"others-umami-vercel-neon-deployment"},{"id":"h:others-umami-vercel-neon-deployment#四设置数据自动清理","tier":"heading","name":"四、设置数据自动清理#","url":"/posts/others-umami-vercel-neon-deployment/#四设置数据自动清理","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"others-umami-vercel-neon-deployment"},{"id":"h:others-umami-vercel-neon-deployment#五更新-umami-版本","tier":"heading","name":"五、更新 Umami 版本#","url":"/posts/others-umami-vercel-neon-deployment/#五更新-umami-版本","colorIndex":3,"categoryId":"c:部署文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"others-umami-vercel-neon-deployment"},{"id":"p:projects-java-thread-pool-configuration","tier":"post","name":"Java 线程池配置指南","url":"/posts/projects-java-thread-pool-configuration/","colorIndex":0,"categoryId":"c:学习文档","value":16,"publishedAt":1778112000000,"postId":"projects-java-thread-pool-configuration"},{"id":"h:projects-java-thread-pool-configuration#一核心摘要","tier":"heading","name":"一、核心摘要#","url":"/posts/projects-java-thread-pool-configuration/#一核心摘要","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-thread-pool-configuration"},{"id":"h:projects-java-thread-pool-configuration#二为什么需要线程池","tier":"heading","name":"二、为什么需要线程池#","url":"/posts/projects-java-thread-pool-configuration/#二为什么需要线程池","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-thread-pool-configuration"},{"id":"h:projects-java-thread-pool-configuration#三threadpoolexecutor-核心参数","tier":"heading","name":"三、ThreadPoolExecutor 核心参数#","url":"/posts/projects-java-thread-pool-configuration/#三threadpoolexecutor-核心参数","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-thread-pool-configuration"},{"id":"h:projects-java-thread-pool-configuration#四任务提交与执行流程","tier":"heading","name":"四、任务提交与执行流程#","url":"/posts/projects-java-thread-pool-configuration/#四任务提交与执行流程","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-thread-pool-configuration"},{"id":"h:projects-java-thread-pool-configuration#五cpu-密集型与-io-密集型任务","tier":"heading","name":"五、CPU 密集型与 IO 密集型任务#","url":"/posts/projects-java-thread-pool-configuration/#五cpu-密集型与-io-密集型任务","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-thread-pool-configuration"},{"id":"h:projects-java-thread-pool-configuration#六线程数估算方法","tier":"heading","name":"六、线程数估算方法#","url":"/posts/projects-java-thread-pool-configuration/#六线程数估算方法","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-thread-pool-configuration"},{"id":"h:projects-java-thread-pool-configuration#七工作队列选型","tier":"heading","name":"七、工作队列选型#","url":"/posts/projects-java-thread-pool-configuration/#七工作队列选型","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-thread-pool-configuration"},{"id":"h:projects-java-thread-pool-configuration#八常见反模式","tier":"heading","name":"八、常见反模式#","url":"/posts/projects-java-thread-pool-configuration/#八常见反模式","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-thread-pool-configuration"},{"id":"h:projects-java-thread-pool-configuration#九企业级配置案例","tier":"heading","name":"九、企业级配置案例#","url":"/posts/projects-java-thread-pool-configuration/#九企业级配置案例","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-thread-pool-configuration"},{"id":"h:projects-java-thread-pool-configuration#十动态线程池","tier":"heading","name":"十、动态线程池#","url":"/posts/projects-java-thread-pool-configuration/#十动态线程池","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-thread-pool-configuration"},{"id":"h:projects-java-thread-pool-configuration#十一可观测性监控与告警","tier":"heading","name":"十一、可观测性：监控与告警#","url":"/posts/projects-java-thread-pool-configuration/#十一可观测性监控与告警","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-thread-pool-configuration"},{"id":"h:projects-java-thread-pool-configuration#十二性能调优建议","tier":"heading","name":"十二、性能调优建议#","url":"/posts/projects-java-thread-pool-configuration/#十二性能调优建议","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-thread-pool-configuration"},{"id":"h:projects-java-thread-pool-configuration#十三常见问题解答faq","tier":"heading","name":"十三、常见问题解答（FAQ）#","url":"/posts/projects-java-thread-pool-configuration/#十三常见问题解答faq","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-thread-pool-configuration"},{"id":"h:projects-java-thread-pool-configuration#十四决策速查表","tier":"heading","name":"十四、决策速查表#","url":"/posts/projects-java-thread-pool-configuration/#十四决策速查表","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-thread-pool-configuration"},{"id":"h:projects-java-thread-pool-configuration#十五总结","tier":"heading","name":"十五、总结#","url":"/posts/projects-java-thread-pool-configuration/#十五总结","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-thread-pool-configuration"},{"id":"h:projects-java-thread-pool-configuration#十六参考资料","tier":"heading","name":"十六、参考资料#","url":"/posts/projects-java-thread-pool-configuration/#十六参考资料","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-thread-pool-configuration"},{"id":"p:projects-java-virtual-thread-async-orchestration","tier":"post","name":"虚拟线程与异步编排","url":"/posts/projects-java-virtual-thread-async-orchestration/","colorIndex":0,"categoryId":"c:学习文档","value":13,"publishedAt":1778112000000,"postId":"projects-java-virtual-thread-async-orchestration"},{"id":"h:projects-java-virtual-thread-async-orchestration#一背景","tier":"heading","name":"一、背景#","url":"/posts/projects-java-virtual-thread-async-orchestration/#一背景","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-virtual-thread-async-orchestration"},{"id":"h:projects-java-virtual-thread-async-orchestration#二java-并发模型的演进史","tier":"heading","name":"二、Java 并发模型的演进史#","url":"/posts/projects-java-virtual-thread-async-orchestration/#二java-并发模型的演进史","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-virtual-thread-async-orchestration"},{"id":"h:projects-java-virtual-thread-async-orchestration#三虚拟线程","tier":"heading","name":"三、虚拟线程#","url":"/posts/projects-java-virtual-thread-async-orchestration/#三虚拟线程","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-virtual-thread-async-orchestration"},{"id":"h:projects-java-virtual-thread-async-orchestration#四虚拟线程-vs-平台线程全面对比","tier":"heading","name":"四、虚拟线程 vs 平台线程：全面对比#","url":"/posts/projects-java-virtual-thread-async-orchestration/#四虚拟线程-vs-平台线程全面对比","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-virtual-thread-async-orchestration"},{"id":"h:projects-java-virtual-thread-async-orchestration#五虚拟线程的使用方式完整代码","tier":"heading","name":"五、虚拟线程的使用方式（完整代码）#","url":"/posts/projects-java-virtual-thread-async-orchestration/#五虚拟线程的使用方式完整代码","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-virtual-thread-async-orchestration"},{"id":"h:projects-java-virtual-thread-async-orchestration#六️-虚拟线程踩坑大全12个坑","tier":"heading","name":"六、⚠️ 虚拟线程踩坑大全（12个坑）#","url":"/posts/projects-java-virtual-thread-async-orchestration/#六️-虚拟线程踩坑大全12个坑","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-virtual-thread-async-orchestration"},{"id":"h:projects-java-virtual-thread-async-orchestration#七completablefuture-异步编排从零讲起","tier":"heading","name":"七、CompletableFuture 异步编排从零讲起#","url":"/posts/projects-java-virtual-thread-async-orchestration/#七completablefuture-异步编排从零讲起","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-virtual-thread-async-orchestration"},{"id":"h:projects-java-virtual-thread-async-orchestration#八️-completablefuture-踩坑大全8个坑","tier":"heading","name":"八、⚠️ CompletableFuture 踩坑大全（8个坑）#","url":"/posts/projects-java-virtual-thread-async-orchestration/#八️-completablefuture-踩坑大全8个坑","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-virtual-thread-async-orchestration"},{"id":"h:projects-java-virtual-thread-async-orchestration#九结构化并发下一代并发编程","tier":"heading","name":"九、结构化并发：下一代并发编程#","url":"/posts/projects-java-virtual-thread-async-orchestration/#九结构化并发下一代并发编程","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-virtual-thread-async-orchestration"},{"id":"h:projects-java-virtual-thread-async-orchestration#十响应式编程reactorwebflux概览","tier":"heading","name":"十、响应式编程（Reactor/WebFlux）概览#","url":"/posts/projects-java-virtual-thread-async-orchestration/#十响应式编程reactorwebflux概览","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-virtual-thread-async-orchestration"},{"id":"h:projects-java-virtual-thread-async-orchestration#十一四种模型横向大对比","tier":"heading","name":"十一、四种模型横向大对比#","url":"/posts/projects-java-virtual-thread-async-orchestration/#十一四种模型横向大对比","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-virtual-thread-async-orchestration"},{"id":"h:projects-java-virtual-thread-async-orchestration#十二企业级选型决策指南","tier":"heading","name":"十二、企业级选型决策指南#","url":"/posts/projects-java-virtual-thread-async-orchestration/#十二企业级选型决策指南","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-virtual-thread-async-orchestration"},{"id":"h:projects-java-virtual-thread-async-orchestration#十三核心总结与学习路径","tier":"heading","name":"十三、核心总结与学习路径#","url":"/posts/projects-java-virtual-thread-async-orchestration/#十三核心总结与学习路径","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1778112000000,"depth":2,"postId":"projects-java-virtual-thread-async-orchestration"},{"id":"p:projects-redis-bitmap-snowflake-id","tier":"post","name":"Redis中Bitmap、雪花ID、分布式的坑","url":"/posts/projects-redis-bitmap-snowflake-id/","colorIndex":2,"categoryId":"c:实践笔记","value":8,"publishedAt":1778025600000,"postId":"projects-redis-bitmap-snowflake-id"},{"id":"h:projects-redis-bitmap-snowflake-id#一案发现场","tier":"heading","name":"一、案发现场#","url":"/posts/projects-redis-bitmap-snowflake-id/#一案发现场","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778025600000,"depth":2,"postId":"projects-redis-bitmap-snowflake-id"},{"id":"h:projects-redis-bitmap-snowflake-id#二问题现象","tier":"heading","name":"二、问题现象#","url":"/posts/projects-redis-bitmap-snowflake-id/#二问题现象","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778025600000,"depth":2,"postId":"projects-redis-bitmap-snowflake-id"},{"id":"h:projects-redis-bitmap-snowflake-id#三从-bitmap-本身分析","tier":"heading","name":"三、从 Bitmap 本身分析#","url":"/posts/projects-redis-bitmap-snowflake-id/#三从-bitmap-本身分析","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778025600000,"depth":2,"postId":"projects-redis-bitmap-snowflake-id"},{"id":"h:projects-redis-bitmap-snowflake-id#四从雪花-id-角度分析","tier":"heading","name":"四、从雪花 ID 角度分析#","url":"/posts/projects-redis-bitmap-snowflake-id/#四从雪花-id-角度分析","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778025600000,"depth":2,"postId":"projects-redis-bitmap-snowflake-id"},{"id":"h:projects-redis-bitmap-snowflake-id#五从分布式角度分析","tier":"heading","name":"五、从分布式角度分析#","url":"/posts/projects-redis-bitmap-snowflake-id/#五从分布式角度分析","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778025600000,"depth":2,"postId":"projects-redis-bitmap-snowflake-id"},{"id":"h:projects-redis-bitmap-snowflake-id#六roaringbitmap-能解决吗","tier":"heading","name":"六、RoaringBitmap 能解决吗？#","url":"/posts/projects-redis-bitmap-snowflake-id/#六roaringbitmap-能解决吗","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778025600000,"depth":2,"postId":"projects-redis-bitmap-snowflake-id"},{"id":"h:projects-redis-bitmap-snowflake-id#七正确方案string--set用户维度","tier":"heading","name":"七、正确方案：String + Set（用户维度）#","url":"/posts/projects-redis-bitmap-snowflake-id/#七正确方案string--set用户维度","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778025600000,"depth":2,"postId":"projects-redis-bitmap-snowflake-id"},{"id":"h:projects-redis-bitmap-snowflake-id#八总结","tier":"heading","name":"八、总结#","url":"/posts/projects-redis-bitmap-snowflake-id/#八总结","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1778025600000,"depth":2,"postId":"projects-redis-bitmap-snowflake-id"},{"id":"p:projects-token-storage-jwt-design","tier":"post","name":"前后端登录Token存储方案","url":"/posts/projects-token-storage-jwt-design/","colorIndex":1,"categoryId":"c:设计文档","value":11,"publishedAt":1777852800000,"postId":"projects-token-storage-jwt-design"},{"id":"h:projects-token-storage-jwt-design#一背景与问题","tier":"heading","name":"一、背景与问题#","url":"/posts/projects-token-storage-jwt-design/#一背景与问题","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777852800000,"depth":2,"postId":"projects-token-storage-jwt-design"},{"id":"h:projects-token-storage-jwt-design#二核心设计","tier":"heading","name":"二、核心设计#","url":"/posts/projects-token-storage-jwt-design/#二核心设计","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777852800000,"depth":2,"postId":"projects-token-storage-jwt-design"},{"id":"h:projects-token-storage-jwt-design#三技术选型","tier":"heading","name":"三、技术选型#","url":"/posts/projects-token-storage-jwt-design/#三技术选型","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777852800000,"depth":2,"postId":"projects-token-storage-jwt-design"},{"id":"h:projects-token-storage-jwt-design#四详细实现","tier":"heading","name":"四、详细实现#","url":"/posts/projects-token-storage-jwt-design/#四详细实现","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777852800000,"depth":2,"postId":"projects-token-storage-jwt-design"},{"id":"h:projects-token-storage-jwt-design#五安全设计","tier":"heading","name":"五、安全设计#","url":"/posts/projects-token-storage-jwt-design/#五安全设计","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777852800000,"depth":2,"postId":"projects-token-storage-jwt-design"},{"id":"h:projects-token-storage-jwt-design#六配置示例","tier":"heading","name":"六、配置示例#","url":"/posts/projects-token-storage-jwt-design/#六配置示例","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777852800000,"depth":2,"postId":"projects-token-storage-jwt-design"},{"id":"h:projects-token-storage-jwt-design#七迁移路径","tier":"heading","name":"七、迁移路径#","url":"/posts/projects-token-storage-jwt-design/#七迁移路径","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777852800000,"depth":2,"postId":"projects-token-storage-jwt-design"},{"id":"h:projects-token-storage-jwt-design#八性能调优","tier":"heading","name":"八、性能调优#","url":"/posts/projects-token-storage-jwt-design/#八性能调优","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777852800000,"depth":2,"postId":"projects-token-storage-jwt-design"},{"id":"h:projects-token-storage-jwt-design#九常见问题","tier":"heading","name":"九、常见问题#","url":"/posts/projects-token-storage-jwt-design/#九常见问题","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777852800000,"depth":2,"postId":"projects-token-storage-jwt-design"},{"id":"h:projects-token-storage-jwt-design#十总结","tier":"heading","name":"十、总结#","url":"/posts/projects-token-storage-jwt-design/#十总结","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777852800000,"depth":2,"postId":"projects-token-storage-jwt-design"},{"id":"h:projects-token-storage-jwt-design#十一参考资料","tier":"heading","name":"十一、参考资料#","url":"/posts/projects-token-storage-jwt-design/#十一参考资料","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777852800000,"depth":2,"postId":"projects-token-storage-jwt-design"},{"id":"p:projects-oauth2-third-party-login","tier":"post","name":"OAuth2第三方登录","url":"/posts/projects-oauth2-third-party-login/","colorIndex":1,"categoryId":"c:设计文档","value":10,"publishedAt":1777766400000,"postId":"projects-oauth2-third-party-login"},{"id":"h:projects-oauth2-third-party-login#方案边界","tier":"heading","name":"方案边界#","url":"/posts/projects-oauth2-third-party-login/#方案边界","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777766400000,"depth":2,"postId":"projects-oauth2-third-party-login"},{"id":"h:projects-oauth2-third-party-login#一通用-oauth2-授权码流程","tier":"heading","name":"一、通用 OAuth2 授权码流程#","url":"/posts/projects-oauth2-third-party-login/#一通用-oauth2-授权码流程","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777766400000,"depth":2,"postId":"projects-oauth2-third-party-login"},{"id":"h:projects-oauth2-third-party-login#二github-登录","tier":"heading","name":"二、GitHub 登录#","url":"/posts/projects-oauth2-third-party-login/#二github-登录","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777766400000,"depth":2,"postId":"projects-oauth2-third-party-login"},{"id":"h:projects-oauth2-third-party-login#三微信登录网站应用","tier":"heading","name":"三、微信登录（网站应用）#","url":"/posts/projects-oauth2-third-party-login/#三微信登录网站应用","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777766400000,"depth":2,"postId":"projects-oauth2-third-party-login"},{"id":"h:projects-oauth2-third-party-login#四qq-登录","tier":"heading","name":"四、QQ 登录#","url":"/posts/projects-oauth2-third-party-login/#四qq-登录","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777766400000,"depth":2,"postId":"projects-oauth2-third-party-login"},{"id":"h:projects-oauth2-third-party-login#五多环境配置清单","tier":"heading","name":"五、多环境配置清单#","url":"/posts/projects-oauth2-third-party-login/#五多环境配置清单","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777766400000,"depth":2,"postId":"projects-oauth2-third-party-login"},{"id":"h:projects-oauth2-third-party-login#六常见问题","tier":"heading","name":"六、常见问题#","url":"/posts/projects-oauth2-third-party-login/#六常见问题","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777766400000,"depth":2,"postId":"projects-oauth2-third-party-login"},{"id":"h:projects-oauth2-third-party-login#七前端对接说明","tier":"heading","name":"七、前端对接说明#","url":"/posts/projects-oauth2-third-party-login/#七前端对接说明","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777766400000,"depth":2,"postId":"projects-oauth2-third-party-login"},{"id":"h:projects-oauth2-third-party-login#八数据库相关","tier":"heading","name":"八、数据库相关#","url":"/posts/projects-oauth2-third-party-login/#八数据库相关","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777766400000,"depth":2,"postId":"projects-oauth2-third-party-login"},{"id":"h:projects-oauth2-third-party-login#九代码文件清单","tier":"heading","name":"九、代码文件清单#","url":"/posts/projects-oauth2-third-party-login/#九代码文件清单","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777766400000,"depth":2,"postId":"projects-oauth2-third-party-login"},{"id":"p:projects-auth-flow-zsk-auth","tier":"post","name":"滑块验证码、登录与注册完整流程","url":"/posts/projects-auth-flow-zsk-auth/","colorIndex":1,"categoryId":"c:设计文档","value":11,"publishedAt":1777680000000,"postId":"projects-auth-flow-zsk-auth"},{"id":"h:projects-auth-flow-zsk-auth#方案范围","tier":"heading","name":"方案范围#","url":"/posts/projects-auth-flow-zsk-auth/#方案范围","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777680000000,"depth":2,"postId":"projects-auth-flow-zsk-auth"},{"id":"h:projects-auth-flow-zsk-auth#一流程图不包含异常处理","tier":"heading","name":"一、流程图（不包含异常处理）#","url":"/posts/projects-auth-flow-zsk-auth/#一流程图不包含异常处理","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777680000000,"depth":2,"postId":"projects-auth-flow-zsk-auth"},{"id":"h:projects-auth-flow-zsk-auth#二流程图-包含异常处理版","tier":"heading","name":"二、流程图 (包含异常处理版)#","url":"/posts/projects-auth-flow-zsk-auth/#二流程图-包含异常处理版","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777680000000,"depth":2,"postId":"projects-auth-flow-zsk-auth"},{"id":"h:projects-auth-flow-zsk-auth#三技术栈-tech-stack","tier":"heading","name":"三、技术栈 (Tech Stack)#","url":"/posts/projects-auth-flow-zsk-auth/#三技术栈-tech-stack","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777680000000,"depth":2,"postId":"projects-auth-flow-zsk-auth"},{"id":"h:projects-auth-flow-zsk-auth#四核心类说明","tier":"heading","name":"四、核心类说明#","url":"/posts/projects-auth-flow-zsk-auth/#四核心类说明","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777680000000,"depth":2,"postId":"projects-auth-flow-zsk-auth"},{"id":"h:projects-auth-flow-zsk-auth#五滑块验证码流程-slider-captcha","tier":"heading","name":"五、滑块验证码流程 (Slider Captcha)#","url":"/posts/projects-auth-flow-zsk-auth/#五滑块验证码流程-slider-captcha","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777680000000,"depth":2,"postId":"projects-auth-flow-zsk-auth"},{"id":"h:projects-auth-flow-zsk-auth#六邮箱验证码流程-email-verification","tier":"heading","name":"六、邮箱验证码流程 (Email Verification)#","url":"/posts/projects-auth-flow-zsk-auth/#六邮箱验证码流程-email-verification","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777680000000,"depth":2,"postId":"projects-auth-flow-zsk-auth"},{"id":"h:projects-auth-flow-zsk-auth#七注册流程-register","tier":"heading","name":"七、注册流程 (Register)#","url":"/posts/projects-auth-flow-zsk-auth/#七注册流程-register","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777680000000,"depth":2,"postId":"projects-auth-flow-zsk-auth"},{"id":"h:projects-auth-flow-zsk-auth#八登录流程-login","tier":"heading","name":"八、登录流程 (Login)#","url":"/posts/projects-auth-flow-zsk-auth/#八登录流程-login","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777680000000,"depth":2,"postId":"projects-auth-flow-zsk-auth"},{"id":"h:projects-auth-flow-zsk-auth#九安全加密机制-security--encryption","tier":"heading","name":"九、安全加密机制 (Security & Encryption)#","url":"/posts/projects-auth-flow-zsk-auth/#九安全加密机制-security--encryption","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777680000000,"depth":2,"postId":"projects-auth-flow-zsk-auth"},{"id":"h:projects-auth-flow-zsk-auth#十限流机制-rate-limiting","tier":"heading","name":"十、限流机制 (Rate Limiting)#","url":"/posts/projects-auth-flow-zsk-auth/#十限流机制-rate-limiting","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777680000000,"depth":2,"postId":"projects-auth-flow-zsk-auth"},{"id":"p:projects-magic-link-login-design","tier":"post","name":"邮箱链接登录前后的实现方案","url":"/posts/projects-magic-link-login-design/","colorIndex":1,"categoryId":"c:设计文档","value":6,"publishedAt":1777593600000,"postId":"projects-magic-link-login-design"},{"id":"h:projects-magic-link-login-design#方案边界","tier":"heading","name":"方案边界#","url":"/posts/projects-magic-link-login-design/#方案边界","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-magic-link-login-design"},{"id":"h:projects-magic-link-login-design#一需求分析","tier":"heading","name":"一、需求分析#","url":"/posts/projects-magic-link-login-design/#一需求分析","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-magic-link-login-design"},{"id":"h:projects-magic-link-login-design#二技术方案","tier":"heading","name":"二、技术方案#","url":"/posts/projects-magic-link-login-design/#二技术方案","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-magic-link-login-design"},{"id":"h:projects-magic-link-login-design#三方案对比分析","tier":"heading","name":"三、方案对比分析#","url":"/posts/projects-magic-link-login-design/#三方案对比分析","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-magic-link-login-design"},{"id":"h:projects-magic-link-login-design#四部署与集成方案","tier":"heading","name":"四、部署与集成方案#","url":"/posts/projects-magic-link-login-design/#四部署与集成方案","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-magic-link-login-design"},{"id":"h:projects-magic-link-login-design#五代码安全性","tier":"heading","name":"五、代码安全性#","url":"/posts/projects-magic-link-login-design/#五代码安全性","colorIndex":1,"categoryId":"c:设计文档","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-magic-link-login-design"},{"id":"p:projects-object-storage-presigned-url","tier":"post","name":"MinIO文件存储签名有效期机制","url":"/posts/projects-object-storage-presigned-url/","colorIndex":0,"categoryId":"c:学习文档","value":7,"publishedAt":1777593600000,"postId":"projects-object-storage-presigned-url"},{"id":"h:projects-object-storage-presigned-url#一背景","tier":"heading","name":"一、背景#","url":"/posts/projects-object-storage-presigned-url/#一背景","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-object-storage-presigned-url"},{"id":"h:projects-object-storage-presigned-url#二什么是签名-url","tier":"heading","name":"二、什么是签名 URL#","url":"/posts/projects-object-storage-presigned-url/#二什么是签名-url","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-object-storage-presigned-url"},{"id":"h:projects-object-storage-presigned-url#三有效期限制","tier":"heading","name":"三、有效期限制#","url":"/posts/projects-object-storage-presigned-url/#三有效期限制","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-object-storage-presigned-url"},{"id":"h:projects-object-storage-presigned-url#四两种访问模式对比","tier":"heading","name":"四、两种访问模式对比#","url":"/posts/projects-object-storage-presigned-url/#四两种访问模式对比","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-object-storage-presigned-url"},{"id":"h:projects-object-storage-presigned-url#五签名-url-过期后的应对方案","tier":"heading","name":"五、签名 URL 过期后的应对方案#","url":"/posts/projects-object-storage-presigned-url/#五签名-url-过期后的应对方案","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-object-storage-presigned-url"},{"id":"h:projects-object-storage-presigned-url#六最佳实践","tier":"heading","name":"六、最佳实践#","url":"/posts/projects-object-storage-presigned-url/#六最佳实践","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-object-storage-presigned-url"},{"id":"h:projects-object-storage-presigned-url#七常见问题","tier":"heading","name":"七、常见问题#","url":"/posts/projects-object-storage-presigned-url/#七常见问题","colorIndex":0,"categoryId":"c:学习文档","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-object-storage-presigned-url"},{"id":"p:projects-qrcode-login-java-comparison","tier":"post","name":"扫码登录前后的实现","url":"/posts/projects-qrcode-login-java-comparison/","colorIndex":2,"categoryId":"c:实践笔记","value":10,"publishedAt":1777593600000,"postId":"projects-qrcode-login-java-comparison"},{"id":"h:projects-qrcode-login-java-comparison#一背景","tier":"heading","name":"一、背景#","url":"/posts/projects-qrcode-login-java-comparison/#一背景","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-qrcode-login-java-comparison"},{"id":"h:projects-qrcode-login-java-comparison#二扫码登录核心流程","tier":"heading","name":"二、扫码登录核心流程#","url":"/posts/projects-qrcode-login-java-comparison/#二扫码登录核心流程","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-qrcode-login-java-comparison"},{"id":"h:projects-qrcode-login-java-comparison#三方案对比pc-端如何感知状态变更","tier":"heading","name":"三、方案对比：PC 端如何感知状态变更#","url":"/posts/projects-qrcode-login-java-comparison/#三方案对比pc-端如何感知状态变更","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-qrcode-login-java-comparison"},{"id":"h:projects-qrcode-login-java-comparison#四后端实现基于-spring-boot--redis","tier":"heading","name":"四、后端实现：基于 Spring Boot + Redis#","url":"/posts/projects-qrcode-login-java-comparison/#四后端实现基于-spring-boot--redis","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-qrcode-login-java-comparison"},{"id":"h:projects-qrcode-login-java-comparison#五前端实现","tier":"heading","name":"五、前端实现#","url":"/posts/projects-qrcode-login-java-comparison/#五前端实现","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-qrcode-login-java-comparison"},{"id":"h:projects-qrcode-login-java-comparison#六安全防御","tier":"heading","name":"六、安全防御#","url":"/posts/projects-qrcode-login-java-comparison/#六安全防御","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-qrcode-login-java-comparison"},{"id":"h:projects-qrcode-login-java-comparison#七踩坑点--注意事项","tier":"heading","name":"七、踩坑点 & 注意事项#","url":"/posts/projects-qrcode-login-java-comparison/#七踩坑点--注意事项","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-qrcode-login-java-comparison"},{"id":"h:projects-qrcode-login-java-comparison#八生产环境部署清单","tier":"heading","name":"八、生产环境部署清单#","url":"/posts/projects-qrcode-login-java-comparison/#八生产环境部署清单","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-qrcode-login-java-comparison"},{"id":"h:projects-qrcode-login-java-comparison#九方案对比总结","tier":"heading","name":"九、方案对比总结#","url":"/posts/projects-qrcode-login-java-comparison/#九方案对比总结","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-qrcode-login-java-comparison"},{"id":"h:projects-qrcode-login-java-comparison#十参考资料","tier":"heading","name":"十、参考资料#","url":"/posts/projects-qrcode-login-java-comparison/#十参考资料","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1777593600000,"depth":2,"postId":"projects-qrcode-login-java-comparison"},{"id":"p:projects-oracle-erp-performance-optimization","tier":"post","name":"Oracle ERP性能优化","url":"/posts/projects-oracle-erp-performance-optimization/","colorIndex":2,"categoryId":"c:实践笔记","value":9,"publishedAt":1764633600000,"postId":"projects-oracle-erp-performance-optimization"},{"id":"h:projects-oracle-erp-performance-optimization#一背景","tier":"heading","name":"一、背景#","url":"/posts/projects-oracle-erp-performance-optimization/#一背景","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1764633600000,"depth":2,"postId":"projects-oracle-erp-performance-optimization"},{"id":"h:projects-oracle-erp-performance-optimization#二根本原因聚簇因子clustering-factor恶化","tier":"heading","name":"二、根本原因：聚簇因子（Clustering Factor）恶化#","url":"/posts/projects-oracle-erp-performance-optimization/#二根本原因聚簇因子clustering-factor恶化","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1764633600000,"depth":2,"postId":"projects-oracle-erp-performance-optimization"},{"id":"h:projects-oracle-erp-performance-optimization#三分析方法","tier":"heading","name":"三、分析方法#","url":"/posts/projects-oracle-erp-performance-optimization/#三分析方法","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1764633600000,"depth":2,"postId":"projects-oracle-erp-performance-optimization"},{"id":"h:projects-oracle-erp-performance-optimization#四优化方案","tier":"heading","name":"四、优化方案#","url":"/posts/projects-oracle-erp-performance-optimization/#四优化方案","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1764633600000,"depth":2,"postId":"projects-oracle-erp-performance-optimization"},{"id":"h:projects-oracle-erp-performance-optimization#五深度分析","tier":"heading","name":"五、深度分析#","url":"/posts/projects-oracle-erp-performance-optimization/#五深度分析","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1764633600000,"depth":2,"postId":"projects-oracle-erp-performance-optimization"},{"id":"h:projects-oracle-erp-performance-optimization#六优化效果汇总","tier":"heading","name":"六、优化效果汇总#","url":"/posts/projects-oracle-erp-performance-optimization/#六优化效果汇总","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1764633600000,"depth":2,"postId":"projects-oracle-erp-performance-optimization"},{"id":"h:projects-oracle-erp-performance-optimization#七mrp-性能优化扩展框架","tier":"heading","name":"七、MRP 性能优化扩展框架#","url":"/posts/projects-oracle-erp-performance-optimization/#七mrp-性能优化扩展框架","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1764633600000,"depth":2,"postId":"projects-oracle-erp-performance-optimization"},{"id":"h:projects-oracle-erp-performance-optimization#八总结","tier":"heading","name":"八、总结#","url":"/posts/projects-oracle-erp-performance-optimization/#八总结","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1764633600000,"depth":2,"postId":"projects-oracle-erp-performance-optimization"},{"id":"h:projects-oracle-erp-performance-optimization#九参考资料","tier":"heading","name":"九、参考资料#","url":"/posts/projects-oracle-erp-performance-optimization/#九参考资料","colorIndex":2,"categoryId":"c:实践笔记","value":1,"publishedAt":1764633600000,"depth":2,"postId":"projects-oracle-erp-performance-optimization"}],"links":[{"source":"c:学习文档","target":"t:AI","kind":"category-tag","value":4},{"source":"c:设计文档","target":"t:AI","kind":"category-tag","value":1},{"source":"c:部署文档","target":"t:AI","kind":"category-tag","value":1},{"source":"c:设计文档","target":"t:认证","kind":"category-tag","value":4},{"source":"c:实践笔记","target":"t:认证","kind":"category-tag","value":1},{"source":"c:设计文档","target":"t:安全","kind":"category-tag","value":3},{"source":"c:学习文档","target":"t:安全","kind":"category-tag","value":1},{"source":"c:设计文档","target":"t:登录","kind":"category-tag","value":3},{"source":"c:学习文档","target":"t:并发编程","kind":"category-tag","value":2},{"source":"c:学习文档","target":"t:博客","kind":"category-tag","value":2},{"source":"c:部署文档","target":"t:部署","kind":"category-tag","value":2},{"source":"c:实践笔记","target":"t:性能优化","kind":"category-tag","value":2},{"source":"c:学习文档","target":"t:Java","kind":"category-tag","value":2},{"source":"c:学习文档","target":"t:RAG","kind":"category-tag","value":1},{"source":"c:设计文档","target":"t:RAG","kind":"category-tag","value":1},{"source":"c:实践笔记","target":"t:Redis","kind":"category-tag","value":2},{"source":"c:设计文档","target":"t:3D","kind":"category-tag","value":1},{"source":"c:学习文档","target":"t:对象存储","kind":"category-tag","value":1},{"source":"c:学习文档","target":"t:二开","kind":"category-tag","value":1},{"source":"c:实践笔记","target":"t:分布式","kind":"category-tag","value":1},{"source":"c:实践笔记","target":"t:高并发","kind":"category-tag","value":1},{"source":"c:学习文档","target":"t:工作流","kind":"category-tag","value":1},{"source":"c:实践笔记","target":"t:缓存设计","kind":"category-tag","value":1},{"source":"c:实践笔记","target":"t:架构设计","kind":"category-tag","value":1},{"source":"c:设计文档","target":"t:米塔","kind":"category-tag","value":1},{"source":"c:学习文档","target":"t:前端","kind":"category-tag","value":1},{"source":"c:实践笔记","target":"t:扫码登录","kind":"category-tag","value":1},{"source":"c:实践笔记","target":"t:数据库","kind":"category-tag","value":1},{"source":"c:学习文档","target":"t:线程池","kind":"category-tag","value":1},{"source":"c:学习文档","target":"t:虚拟线程","kind":"category-tag","value":1},{"source":"c:实践笔记","target":"t:Bitmap","kind":"category-tag","value":1},{"source":"c:部署文档","target":"t:Bot","kind":"category-tag","value":1},{"source":"c:设计文档","target":"t:Cloudflare","kind":"category-tag","value":1},{"source":"c:学习文档","target":"t:firefly","kind":"category-tag","value":1},{"source":"c:设计文档","target":"t:JWT","kind":"category-tag","value":1},{"source":"c:学习文档","target":"t:LLM","kind":"category-tag","value":1},{"source":"c:学习文档","target":"t:MinIO","kind":"category-tag","value":1},{"source":"c:设计文档","target":"t:OAuth2","kind":"category-tag","value":1},{"source":"c:实践笔记","target":"t:Oracle","kind":"category-tag","value":1},{"source":"c:学习文档","target":"t:Prompt","kind":"category-tag","value":1},{"source":"c:设计文档","target":"t:React","kind":"category-tag","value":1},{"source":"c:学习文档","target":"t:Skill","kind":"category-tag","value":1},{"source":"c:设计文档","target":"t:Three","kind":"category-tag","value":1},{"source":"c:部署文档","target":"t:Umami","kind":"category-tag","value":1},{"source":"c:部署文档","target":"t:Vercel","kind":"category-tag","value":1},{"source":"c:实践笔记","target":"t:WebSocket","kind":"category-tag","value":1},{"source":"t:AI","target":"p:ai-rag-ten-strategies","kind":"tag-post","value":1},{"source":"t:LLM","target":"p:ai-rag-ten-strategies","kind":"tag-post","value":1},{"source":"t:RAG","target":"p:ai-rag-ten-strategies","kind":"tag-post","value":1},{"source":"p:ai-rag-ten-strategies","target":"h:ai-rag-ten-strategies#一引子rag-死了吗","kind":"post-heading","value":1},{"source":"p:ai-rag-ten-strategies","target":"h:ai-rag-ten-strategies#二rag-总体流程","kind":"post-heading","value":1},{"source":"p:ai-rag-ten-strategies","target":"h:ai-rag-ten-strategies#三准备阶段策略-1-5","kind":"post-heading","value":1},{"source":"p:ai-rag-ten-strategies","target":"h:ai-rag-ten-strategies#四检索阶段策略-6-9","kind":"post-heading","value":1},{"source":"p:ai-rag-ten-strategies","target":"h:ai-rag-ten-strategies#五范式升级策略-10-与组合策略","kind":"post-heading","value":1},{"source":"p:ai-rag-ten-strategies","target":"h:ai-rag-ten-strategies#六十种策略速览与选型","kind":"post-heading","value":1},{"source":"p:ai-rag-ten-strategies","target":"h:ai-rag-ten-strategies#七质量与工程考量","kind":"post-heading","value":1},{"source":"p:ai-rag-ten-strategies","target":"h:ai-rag-ten-strategies#八结语","kind":"post-heading","value":1},{"source":"p:ai-rag-ten-strategies","target":"h:ai-rag-ten-strategies#九参考资料","kind":"post-heading","value":1},{"source":"t:firefly","target":"p:others-blog-firefly-mod","kind":"tag-post","value":1},{"source":"t:二开","target":"p:others-blog-firefly-mod","kind":"tag-post","value":1},{"source":"t:博客","target":"p:others-blog-firefly-mod","kind":"tag-post","value":1},{"source":"p:others-blog-firefly-mod","target":"h:others-blog-firefly-mod#选型背景","kind":"post-heading","value":1},{"source":"p:others-blog-firefly-mod","target":"h:others-blog-firefly-mod#一重点","kind":"post-heading","value":1},{"source":"p:others-blog-firefly-mod","target":"h:others-blog-firefly-mod#二用到的ai模型","kind":"post-heading","value":1},{"source":"p:others-blog-firefly-mod","target":"h:others-blog-firefly-mod#三优点与ui复制","kind":"post-heading","value":1},{"source":"t:3D","target":"p:projects-miside-3d-text","kind":"tag-post","value":1},{"source":"t:React","target":"p:projects-miside-3d-text","kind":"tag-post","value":1},{"source":"t:Three","target":"p:projects-miside-3d-text","kind":"tag-post","value":1},{"source":"t:米塔","target":"p:projects-miside-3d-text","kind":"tag-post","value":1},{"source":"p:projects-miside-3d-text","target":"h:projects-miside-3d-text#技术栈","kind":"post-heading","value":1},{"source":"p:projects-miside-3d-text","target":"h:projects-miside-3d-text#架构总览","kind":"post-heading","value":1},{"source":"p:projects-miside-3d-text","target":"h:projects-miside-3d-text#核心实现原理","kind":"post-heading","value":1},{"source":"p:projects-miside-3d-text","target":"h:projects-miside-3d-text#完整代码","kind":"post-heading","value":1},{"source":"p:projects-miside-3d-text","target":"h:projects-miside-3d-text#踩坑点--注意事项","kind":"post-heading","value":1},{"source":"p:projects-miside-3d-text","target":"h:projects-miside-3d-text#性能对比","kind":"post-heading","value":1},{"source":"p:projects-miside-3d-text","target":"h:projects-miside-3d-text#总结","kind":"post-heading","value":1},{"source":"t:AI","target":"p:ai-prompt-collection","kind":"tag-post","value":1},{"source":"t:Prompt","target":"p:ai-prompt-collection","kind":"tag-post","value":1},{"source":"p:ai-prompt-collection","target":"h:ai-prompt-collection#一规范限制","kind":"post-heading","value":1},{"source":"p:ai-prompt-collection","target":"h:ai-prompt-collection#二生图提示词","kind":"post-heading","value":1},{"source":"t:AI","target":"p:ai-blog-ai-zero-editing","kind":"tag-post","value":1},{"source":"t:前端","target":"p:ai-blog-ai-zero-editing","kind":"tag-post","value":1},{"source":"t:博客","target":"p:ai-blog-ai-zero-editing","kind":"tag-post","value":1},{"source":"p:ai-blog-ai-zero-editing","target":"h:ai-blog-ai-zero-editing#一问题与目标","kind":"post-heading","value":1},{"source":"p:ai-blog-ai-zero-editing","target":"h:ai-blog-ai-zero-editing#二ai-工具","kind":"post-heading","value":1},{"source":"p:ai-blog-ai-zero-editing","target":"h:ai-blog-ai-zero-editing#三博客设计","kind":"post-heading","value":1},{"source":"t:AI","target":"p:ai-openspec-superpowers-workflow","kind":"tag-post","value":1},{"source":"t:Skill","target":"p:ai-openspec-superpowers-workflow","kind":"tag-post","value":1},{"source":"t:工作流","target":"p:ai-openspec-superpowers-workflow","kind":"tag-post","value":1},{"source":"p:ai-openspec-superpowers-workflow","target":"h:ai-openspec-superpowers-workflow#一介绍","kind":"post-heading","value":1},{"source":"p:ai-openspec-superpowers-workflow","target":"h:ai-openspec-superpowers-workflow#二作用","kind":"post-heading","value":1},{"source":"p:ai-openspec-superpowers-workflow","target":"h:ai-openspec-superpowers-workflow#三使用步骤","kind":"post-heading","value":1},{"source":"p:ai-openspec-superpowers-workflow","target":"h:ai-openspec-superpowers-workflow#四相关-skill","kind":"post-heading","value":1},{"source":"p:ai-openspec-superpowers-workflow","target":"h:ai-openspec-superpowers-workflow#五安装","kind":"post-heading","value":1},{"source":"p:ai-openspec-superpowers-workflow","target":"h:ai-openspec-superpowers-workflow#六卸载","kind":"post-heading","value":1},{"source":"p:ai-openspec-superpowers-workflow","target":"h:ai-openspec-superpowers-workflow#七协同使用方法","kind":"post-heading","value":1},{"source":"p:ai-openspec-superpowers-workflow","target":"h:ai-openspec-superpowers-workflow#八常见问题","kind":"post-heading","value":1},{"source":"p:ai-openspec-superpowers-workflow","target":"h:ai-openspec-superpowers-workflow#九总结","kind":"post-heading","value":1},{"source":"p:ai-openspec-superpowers-workflow","target":"h:ai-openspec-superpowers-workflow#十参考资料","kind":"post-heading","value":1},{"source":"t:AI","target":"p:ai-blog-ai-search-vectorize","kind":"tag-post","value":1},{"source":"t:Cloudflare","target":"p:ai-blog-ai-search-vectorize","kind":"tag-post","value":1},{"source":"t:RAG","target":"p:ai-blog-ai-search-vectorize","kind":"tag-post","value":1},{"source":"p:ai-blog-ai-search-vectorize","target":"h:ai-blog-ai-search-vectorize#一问题与目标","kind":"post-heading","value":1},{"source":"p:ai-blog-ai-search-vectorize","target":"h:ai-blog-ai-search-vectorize#二架构","kind":"post-heading","value":1},{"source":"p:ai-blog-ai-search-vectorize","target":"h:ai-blog-ai-search-vectorize#三文档分块策略","kind":"post-heading","value":1},{"source":"p:ai-blog-ai-search-vectorize","target":"h:ai-blog-ai-search-vectorize#四向量化与存储","kind":"post-heading","value":1},{"source":"p:ai-blog-ai-search-vectorize","target":"h:ai-blog-ai-search-vectorize#五worker-端问答流程","kind":"post-heading","value":1},{"source":"p:ai-blog-ai-search-vectorize","target":"h:ai-blog-ai-search-vectorize#六前端组件","kind":"post-heading","value":1},{"source":"p:ai-blog-ai-search-vectorize","target":"h:ai-blog-ai-search-vectorize#七敏感配置处理","kind":"post-heading","value":1},{"source":"p:ai-blog-ai-search-vectorize","target":"h:ai-blog-ai-search-vectorize#八资源消耗","kind":"post-heading","value":1},{"source":"p:ai-blog-ai-search-vectorize","target":"h:ai-blog-ai-search-vectorize#九文件清单","kind":"post-heading","value":1},{"source":"p:ai-blog-ai-search-vectorize","target":"h:ai-blog-ai-search-vectorize#十踩坑记录","kind":"post-heading","value":1},{"source":"t:Redis","target":"p:projects-redis-interaction-cache-design","kind":"tag-post","value":1},{"source":"t:架构设计","target":"p:projects-redis-interaction-cache-design","kind":"tag-post","value":1},{"source":"t:缓存设计","target":"p:projects-redis-interaction-cache-design","kind":"tag-post","value":1},{"source":"t:高并发","target":"p:projects-redis-interaction-cache-design","kind":"tag-post","value":1},{"source":"p:projects-redis-interaction-cache-design","target":"h:projects-redis-interaction-cache-design#问题与目标","kind":"post-heading","value":1},{"source":"p:projects-redis-interaction-cache-design","target":"h:projects-redis-interaction-cache-design#状态结构选型set--zset--hash","kind":"post-heading","value":1},{"source":"p:projects-redis-interaction-cache-design","target":"h:projects-redis-interaction-cache-design#方案一db-直写小流量","kind":"post-heading","value":1},{"source":"p:projects-redis-interaction-cache-design","target":"h:projects-redis-interaction-cache-design#方案二redis-单-key--定时落库中流量","kind":"post-heading","value":1},{"source":"p:projects-redis-interaction-cache-design","target":"h:projects-redis-interaction-cache-design#方案三redis-单-key--mq-批量聚合中流量有-mq","kind":"post-heading","value":1},{"source":"p:projects-redis-interaction-cache-design","target":"h:projects-redis-interaction-cache-design#方案四hash-分桶--mq-批量聚合大流量热点集中","kind":"post-heading","value":1},{"source":"p:projects-redis-interaction-cache-design","target":"h:projects-redis-interaction-cache-design#方案对比","kind":"post-heading","value":1},{"source":"p:projects-redis-interaction-cache-design","target":"h:projects-redis-interaction-cache-design#兜底降级","kind":"post-heading","value":1},{"source":"p:projects-redis-interaction-cache-design","target":"h:projects-redis-interaction-cache-design#为什么不用-bitmap","kind":"post-heading","value":1},{"source":"p:projects-redis-interaction-cache-design","target":"h:projects-redis-interaction-cache-design#实施坑点","kind":"post-heading","value":1},{"source":"p:projects-redis-interaction-cache-design","target":"h:projects-redis-interaction-cache-design#风险","kind":"post-heading","value":1},{"source":"p:projects-redis-interaction-cache-design","target":"h:projects-redis-interaction-cache-design#参考资料","kind":"post-heading","value":1},{"source":"t:AI","target":"p:ai-napcat-astrbot-deployment","kind":"tag-post","value":1},{"source":"t:Bot","target":"p:ai-napcat-astrbot-deployment","kind":"tag-post","value":1},{"source":"t:部署","target":"p:ai-napcat-astrbot-deployment","kind":"tag-post","value":1},{"source":"p:ai-napcat-astrbot-deployment","target":"h:ai-napcat-astrbot-deployment#组件职责","kind":"post-heading","value":1},{"source":"p:ai-napcat-astrbot-deployment","target":"h:ai-napcat-astrbot-deployment#一部署环境要求","kind":"post-heading","value":1},{"source":"p:ai-napcat-astrbot-deployment","target":"h:ai-napcat-astrbot-deployment#二目录结构","kind":"post-heading","value":1},{"source":"p:ai-napcat-astrbot-deployment","target":"h:ai-napcat-astrbot-deployment#三docker-composeyml","kind":"post-heading","value":1},{"source":"p:ai-napcat-astrbot-deployment","target":"h:ai-napcat-astrbot-deployment#四本地-docker-desktop-部署","kind":"post-heading","value":1},{"source":"p:ai-napcat-astrbot-deployment","target":"h:ai-napcat-astrbot-deployment#五服务器部署","kind":"post-heading","value":1},{"source":"p:ai-napcat-astrbot-deployment","target":"h:ai-napcat-astrbot-deployment#六napcat-相关配置","kind":"post-heading","value":1},{"source":"p:ai-napcat-astrbot-deployment","target":"h:ai-napcat-astrbot-deployment#七astrbot-相关配置","kind":"post-heading","value":1},{"source":"p:ai-napcat-astrbot-deployment","target":"h:ai-napcat-astrbot-deployment#八人格设置","kind":"post-heading","value":1},{"source":"p:ai-napcat-astrbot-deployment","target":"h:ai-napcat-astrbot-deployment#九推荐插件","kind":"post-heading","value":1},{"source":"p:ai-napcat-astrbot-deployment","target":"h:ai-napcat-astrbot-deployment#十常见问题","kind":"post-heading","value":1},{"source":"p:ai-napcat-astrbot-deployment","target":"h:ai-napcat-astrbot-deployment#十一参考资料","kind":"post-heading","value":1},{"source":"t:Umami","target":"p:others-umami-vercel-neon-deployment","kind":"tag-post","value":1},{"source":"t:Vercel","target":"p:others-umami-vercel-neon-deployment","kind":"tag-post","value":1},{"source":"t:部署","target":"p:others-umami-vercel-neon-deployment","kind":"tag-post","value":1},{"source":"p:others-umami-vercel-neon-deployment","target":"h:others-umami-vercel-neon-deployment#一架构","kind":"post-heading","value":1},{"source":"p:others-umami-vercel-neon-deployment","target":"h:others-umami-vercel-neon-deployment#二部署步骤","kind":"post-heading","value":1},{"source":"p:others-umami-vercel-neon-deployment","target":"h:others-umami-vercel-neon-deployment#三本项目获取-uvpv-的实现原理","kind":"post-heading","value":1},{"source":"p:others-umami-vercel-neon-deployment","target":"h:others-umami-vercel-neon-deployment#四设置数据自动清理","kind":"post-heading","value":1},{"source":"p:others-umami-vercel-neon-deployment","target":"h:others-umami-vercel-neon-deployment#五更新-umami-版本","kind":"post-heading","value":1},{"source":"t:Java","target":"p:projects-java-thread-pool-configuration","kind":"tag-post","value":1},{"source":"t:并发编程","target":"p:projects-java-thread-pool-configuration","kind":"tag-post","value":1},{"source":"t:线程池","target":"p:projects-java-thread-pool-configuration","kind":"tag-post","value":1},{"source":"p:projects-java-thread-pool-configuration","target":"h:projects-java-thread-pool-configuration#一核心摘要","kind":"post-heading","value":1},{"source":"p:projects-java-thread-pool-configuration","target":"h:projects-java-thread-pool-configuration#二为什么需要线程池","kind":"post-heading","value":1},{"source":"p:projects-java-thread-pool-configuration","target":"h:projects-java-thread-pool-configuration#三threadpoolexecutor-核心参数","kind":"post-heading","value":1},{"source":"p:projects-java-thread-pool-configuration","target":"h:projects-java-thread-pool-configuration#四任务提交与执行流程","kind":"post-heading","value":1},{"source":"p:projects-java-thread-pool-configuration","target":"h:projects-java-thread-pool-configuration#五cpu-密集型与-io-密集型任务","kind":"post-heading","value":1},{"source":"p:projects-java-thread-pool-configuration","target":"h:projects-java-thread-pool-configuration#六线程数估算方法","kind":"post-heading","value":1},{"source":"p:projects-java-thread-pool-configuration","target":"h:projects-java-thread-pool-configuration#七工作队列选型","kind":"post-heading","value":1},{"source":"p:projects-java-thread-pool-configuration","target":"h:projects-java-thread-pool-configuration#八常见反模式","kind":"post-heading","value":1},{"source":"p:projects-java-thread-pool-configuration","target":"h:projects-java-thread-pool-configuration#九企业级配置案例","kind":"post-heading","value":1},{"source":"p:projects-java-thread-pool-configuration","target":"h:projects-java-thread-pool-configuration#十动态线程池","kind":"post-heading","value":1},{"source":"p:projects-java-thread-pool-configuration","target":"h:projects-java-thread-pool-configuration#十一可观测性监控与告警","kind":"post-heading","value":1},{"source":"p:projects-java-thread-pool-configuration","target":"h:projects-java-thread-pool-configuration#十二性能调优建议","kind":"post-heading","value":1},{"source":"p:projects-java-thread-pool-configuration","target":"h:projects-java-thread-pool-configuration#十三常见问题解答faq","kind":"post-heading","value":1},{"source":"p:projects-java-thread-pool-configuration","target":"h:projects-java-thread-pool-configuration#十四决策速查表","kind":"post-heading","value":1},{"source":"p:projects-java-thread-pool-configuration","target":"h:projects-java-thread-pool-configuration#十五总结","kind":"post-heading","value":1},{"source":"p:projects-java-thread-pool-configuration","target":"h:projects-java-thread-pool-configuration#十六参考资料","kind":"post-heading","value":1},{"source":"t:Java","target":"p:projects-java-virtual-thread-async-orchestration","kind":"tag-post","value":1},{"source":"t:并发编程","target":"p:projects-java-virtual-thread-async-orchestration","kind":"tag-post","value":1},{"source":"t:虚拟线程","target":"p:projects-java-virtual-thread-async-orchestration","kind":"tag-post","value":1},{"source":"p:projects-java-virtual-thread-async-orchestration","target":"h:projects-java-virtual-thread-async-orchestration#一背景","kind":"post-heading","value":1},{"source":"p:projects-java-virtual-thread-async-orchestration","target":"h:projects-java-virtual-thread-async-orchestration#二java-并发模型的演进史","kind":"post-heading","value":1},{"source":"p:projects-java-virtual-thread-async-orchestration","target":"h:projects-java-virtual-thread-async-orchestration#三虚拟线程","kind":"post-heading","value":1},{"source":"p:projects-java-virtual-thread-async-orchestration","target":"h:projects-java-virtual-thread-async-orchestration#四虚拟线程-vs-平台线程全面对比","kind":"post-heading","value":1},{"source":"p:projects-java-virtual-thread-async-orchestration","target":"h:projects-java-virtual-thread-async-orchestration#五虚拟线程的使用方式完整代码","kind":"post-heading","value":1},{"source":"p:projects-java-virtual-thread-async-orchestration","target":"h:projects-java-virtual-thread-async-orchestration#六️-虚拟线程踩坑大全12个坑","kind":"post-heading","value":1},{"source":"p:projects-java-virtual-thread-async-orchestration","target":"h:projects-java-virtual-thread-async-orchestration#七completablefuture-异步编排从零讲起","kind":"post-heading","value":1},{"source":"p:projects-java-virtual-thread-async-orchestration","target":"h:projects-java-virtual-thread-async-orchestration#八️-completablefuture-踩坑大全8个坑","kind":"post-heading","value":1},{"source":"p:projects-java-virtual-thread-async-orchestration","target":"h:projects-java-virtual-thread-async-orchestration#九结构化并发下一代并发编程","kind":"post-heading","value":1},{"source":"p:projects-java-virtual-thread-async-orchestration","target":"h:projects-java-virtual-thread-async-orchestration#十响应式编程reactorwebflux概览","kind":"post-heading","value":1},{"source":"p:projects-java-virtual-thread-async-orchestration","target":"h:projects-java-virtual-thread-async-orchestration#十一四种模型横向大对比","kind":"post-heading","value":1},{"source":"p:projects-java-virtual-thread-async-orchestration","target":"h:projects-java-virtual-thread-async-orchestration#十二企业级选型决策指南","kind":"post-heading","value":1},{"source":"p:projects-java-virtual-thread-async-orchestration","target":"h:projects-java-virtual-thread-async-orchestration#十三核心总结与学习路径","kind":"post-heading","value":1},{"source":"t:Bitmap","target":"p:projects-redis-bitmap-snowflake-id","kind":"tag-post","value":1},{"source":"t:Redis","target":"p:projects-redis-bitmap-snowflake-id","kind":"tag-post","value":1},{"source":"t:分布式","target":"p:projects-redis-bitmap-snowflake-id","kind":"tag-post","value":1},{"source":"t:性能优化","target":"p:projects-redis-bitmap-snowflake-id","kind":"tag-post","value":1},{"source":"p:projects-redis-bitmap-snowflake-id","target":"h:projects-redis-bitmap-snowflake-id#一案发现场","kind":"post-heading","value":1},{"source":"p:projects-redis-bitmap-snowflake-id","target":"h:projects-redis-bitmap-snowflake-id#二问题现象","kind":"post-heading","value":1},{"source":"p:projects-redis-bitmap-snowflake-id","target":"h:projects-redis-bitmap-snowflake-id#三从-bitmap-本身分析","kind":"post-heading","value":1},{"source":"p:projects-redis-bitmap-snowflake-id","target":"h:projects-redis-bitmap-snowflake-id#四从雪花-id-角度分析","kind":"post-heading","value":1},{"source":"p:projects-redis-bitmap-snowflake-id","target":"h:projects-redis-bitmap-snowflake-id#五从分布式角度分析","kind":"post-heading","value":1},{"source":"p:projects-redis-bitmap-snowflake-id","target":"h:projects-redis-bitmap-snowflake-id#六roaringbitmap-能解决吗","kind":"post-heading","value":1},{"source":"p:projects-redis-bitmap-snowflake-id","target":"h:projects-redis-bitmap-snowflake-id#七正确方案string--set用户维度","kind":"post-heading","value":1},{"source":"p:projects-redis-bitmap-snowflake-id","target":"h:projects-redis-bitmap-snowflake-id#八总结","kind":"post-heading","value":1},{"source":"t:JWT","target":"p:projects-token-storage-jwt-design","kind":"tag-post","value":1},{"source":"t:安全","target":"p:projects-token-storage-jwt-design","kind":"tag-post","value":1},{"source":"t:认证","target":"p:projects-token-storage-jwt-design","kind":"tag-post","value":1},{"source":"p:projects-token-storage-jwt-design","target":"h:projects-token-storage-jwt-design#一背景与问题","kind":"post-heading","value":1},{"source":"p:projects-token-storage-jwt-design","target":"h:projects-token-storage-jwt-design#二核心设计","kind":"post-heading","value":1},{"source":"p:projects-token-storage-jwt-design","target":"h:projects-token-storage-jwt-design#三技术选型","kind":"post-heading","value":1},{"source":"p:projects-token-storage-jwt-design","target":"h:projects-token-storage-jwt-design#四详细实现","kind":"post-heading","value":1},{"source":"p:projects-token-storage-jwt-design","target":"h:projects-token-storage-jwt-design#五安全设计","kind":"post-heading","value":1},{"source":"p:projects-token-storage-jwt-design","target":"h:projects-token-storage-jwt-design#六配置示例","kind":"post-heading","value":1},{"source":"p:projects-token-storage-jwt-design","target":"h:projects-token-storage-jwt-design#七迁移路径","kind":"post-heading","value":1},{"source":"p:projects-token-storage-jwt-design","target":"h:projects-token-storage-jwt-design#八性能调优","kind":"post-heading","value":1},{"source":"p:projects-token-storage-jwt-design","target":"h:projects-token-storage-jwt-design#九常见问题","kind":"post-heading","value":1},{"source":"p:projects-token-storage-jwt-design","target":"h:projects-token-storage-jwt-design#十总结","kind":"post-heading","value":1},{"source":"p:projects-token-storage-jwt-design","target":"h:projects-token-storage-jwt-design#十一参考资料","kind":"post-heading","value":1},{"source":"t:OAuth2","target":"p:projects-oauth2-third-party-login","kind":"tag-post","value":1},{"source":"t:登录","target":"p:projects-oauth2-third-party-login","kind":"tag-post","value":1},{"source":"t:认证","target":"p:projects-oauth2-third-party-login","kind":"tag-post","value":1},{"source":"p:projects-oauth2-third-party-login","target":"h:projects-oauth2-third-party-login#方案边界","kind":"post-heading","value":1},{"source":"p:projects-oauth2-third-party-login","target":"h:projects-oauth2-third-party-login#一通用-oauth2-授权码流程","kind":"post-heading","value":1},{"source":"p:projects-oauth2-third-party-login","target":"h:projects-oauth2-third-party-login#二github-登录","kind":"post-heading","value":1},{"source":"p:projects-oauth2-third-party-login","target":"h:projects-oauth2-third-party-login#三微信登录网站应用","kind":"post-heading","value":1},{"source":"p:projects-oauth2-third-party-login","target":"h:projects-oauth2-third-party-login#四qq-登录","kind":"post-heading","value":1},{"source":"p:projects-oauth2-third-party-login","target":"h:projects-oauth2-third-party-login#五多环境配置清单","kind":"post-heading","value":1},{"source":"p:projects-oauth2-third-party-login","target":"h:projects-oauth2-third-party-login#六常见问题","kind":"post-heading","value":1},{"source":"p:projects-oauth2-third-party-login","target":"h:projects-oauth2-third-party-login#七前端对接说明","kind":"post-heading","value":1},{"source":"p:projects-oauth2-third-party-login","target":"h:projects-oauth2-third-party-login#八数据库相关","kind":"post-heading","value":1},{"source":"p:projects-oauth2-third-party-login","target":"h:projects-oauth2-third-party-login#九代码文件清单","kind":"post-heading","value":1},{"source":"t:安全","target":"p:projects-auth-flow-zsk-auth","kind":"tag-post","value":1},{"source":"t:登录","target":"p:projects-auth-flow-zsk-auth","kind":"tag-post","value":1},{"source":"t:认证","target":"p:projects-auth-flow-zsk-auth","kind":"tag-post","value":1},{"source":"p:projects-auth-flow-zsk-auth","target":"h:projects-auth-flow-zsk-auth#方案范围","kind":"post-heading","value":1},{"source":"p:projects-auth-flow-zsk-auth","target":"h:projects-auth-flow-zsk-auth#一流程图不包含异常处理","kind":"post-heading","value":1},{"source":"p:projects-auth-flow-zsk-auth","target":"h:projects-auth-flow-zsk-auth#二流程图-包含异常处理版","kind":"post-heading","value":1},{"source":"p:projects-auth-flow-zsk-auth","target":"h:projects-auth-flow-zsk-auth#三技术栈-tech-stack","kind":"post-heading","value":1},{"source":"p:projects-auth-flow-zsk-auth","target":"h:projects-auth-flow-zsk-auth#四核心类说明","kind":"post-heading","value":1},{"source":"p:projects-auth-flow-zsk-auth","target":"h:projects-auth-flow-zsk-auth#五滑块验证码流程-slider-captcha","kind":"post-heading","value":1},{"source":"p:projects-auth-flow-zsk-auth","target":"h:projects-auth-flow-zsk-auth#六邮箱验证码流程-email-verification","kind":"post-heading","value":1},{"source":"p:projects-auth-flow-zsk-auth","target":"h:projects-auth-flow-zsk-auth#七注册流程-register","kind":"post-heading","value":1},{"source":"p:projects-auth-flow-zsk-auth","target":"h:projects-auth-flow-zsk-auth#八登录流程-login","kind":"post-heading","value":1},{"source":"p:projects-auth-flow-zsk-auth","target":"h:projects-auth-flow-zsk-auth#九安全加密机制-security--encryption","kind":"post-heading","value":1},{"source":"p:projects-auth-flow-zsk-auth","target":"h:projects-auth-flow-zsk-auth#十限流机制-rate-limiting","kind":"post-heading","value":1},{"source":"t:安全","target":"p:projects-magic-link-login-design","kind":"tag-post","value":1},{"source":"t:登录","target":"p:projects-magic-link-login-design","kind":"tag-post","value":1},{"source":"t:认证","target":"p:projects-magic-link-login-design","kind":"tag-post","value":1},{"source":"p:projects-magic-link-login-design","target":"h:projects-magic-link-login-design#方案边界","kind":"post-heading","value":1},{"source":"p:projects-magic-link-login-design","target":"h:projects-magic-link-login-design#一需求分析","kind":"post-heading","value":1},{"source":"p:projects-magic-link-login-design","target":"h:projects-magic-link-login-design#二技术方案","kind":"post-heading","value":1},{"source":"p:projects-magic-link-login-design","target":"h:projects-magic-link-login-design#三方案对比分析","kind":"post-heading","value":1},{"source":"p:projects-magic-link-login-design","target":"h:projects-magic-link-login-design#四部署与集成方案","kind":"post-heading","value":1},{"source":"p:projects-magic-link-login-design","target":"h:projects-magic-link-login-design#五代码安全性","kind":"post-heading","value":1},{"source":"t:MinIO","target":"p:projects-object-storage-presigned-url","kind":"tag-post","value":1},{"source":"t:安全","target":"p:projects-object-storage-presigned-url","kind":"tag-post","value":1},{"source":"t:对象存储","target":"p:projects-object-storage-presigned-url","kind":"tag-post","value":1},{"source":"p:projects-object-storage-presigned-url","target":"h:projects-object-storage-presigned-url#一背景","kind":"post-heading","value":1},{"source":"p:projects-object-storage-presigned-url","target":"h:projects-object-storage-presigned-url#二什么是签名-url","kind":"post-heading","value":1},{"source":"p:projects-object-storage-presigned-url","target":"h:projects-object-storage-presigned-url#三有效期限制","kind":"post-heading","value":1},{"source":"p:projects-object-storage-presigned-url","target":"h:projects-object-storage-presigned-url#四两种访问模式对比","kind":"post-heading","value":1},{"source":"p:projects-object-storage-presigned-url","target":"h:projects-object-storage-presigned-url#五签名-url-过期后的应对方案","kind":"post-heading","value":1},{"source":"p:projects-object-storage-presigned-url","target":"h:projects-object-storage-presigned-url#六最佳实践","kind":"post-heading","value":1},{"source":"p:projects-object-storage-presigned-url","target":"h:projects-object-storage-presigned-url#七常见问题","kind":"post-heading","value":1},{"source":"t:WebSocket","target":"p:projects-qrcode-login-java-comparison","kind":"tag-post","value":1},{"source":"t:扫码登录","target":"p:projects-qrcode-login-java-comparison","kind":"tag-post","value":1},{"source":"t:认证","target":"p:projects-qrcode-login-java-comparison","kind":"tag-post","value":1},{"source":"p:projects-qrcode-login-java-comparison","target":"h:projects-qrcode-login-java-comparison#一背景","kind":"post-heading","value":1},{"source":"p:projects-qrcode-login-java-comparison","target":"h:projects-qrcode-login-java-comparison#二扫码登录核心流程","kind":"post-heading","value":1},{"source":"p:projects-qrcode-login-java-comparison","target":"h:projects-qrcode-login-java-comparison#三方案对比pc-端如何感知状态变更","kind":"post-heading","value":1},{"source":"p:projects-qrcode-login-java-comparison","target":"h:projects-qrcode-login-java-comparison#四后端实现基于-spring-boot--redis","kind":"post-heading","value":1},{"source":"p:projects-qrcode-login-java-comparison","target":"h:projects-qrcode-login-java-comparison#五前端实现","kind":"post-heading","value":1},{"source":"p:projects-qrcode-login-java-comparison","target":"h:projects-qrcode-login-java-comparison#六安全防御","kind":"post-heading","value":1},{"source":"p:projects-qrcode-login-java-comparison","target":"h:projects-qrcode-login-java-comparison#七踩坑点--注意事项","kind":"post-heading","value":1},{"source":"p:projects-qrcode-login-java-comparison","target":"h:projects-qrcode-login-java-comparison#八生产环境部署清单","kind":"post-heading","value":1},{"source":"p:projects-qrcode-login-java-comparison","target":"h:projects-qrcode-login-java-comparison#九方案对比总结","kind":"post-heading","value":1},{"source":"p:projects-qrcode-login-java-comparison","target":"h:projects-qrcode-login-java-comparison#十参考资料","kind":"post-heading","value":1},{"source":"t:Oracle","target":"p:projects-oracle-erp-performance-optimization","kind":"tag-post","value":1},{"source":"t:性能优化","target":"p:projects-oracle-erp-performance-optimization","kind":"tag-post","value":1},{"source":"t:数据库","target":"p:projects-oracle-erp-performance-optimization","kind":"tag-post","value":1},{"source":"p:projects-oracle-erp-performance-optimization","target":"h:projects-oracle-erp-performance-optimization#一背景","kind":"post-heading","value":1},{"source":"p:projects-oracle-erp-performance-optimization","target":"h:projects-oracle-erp-performance-optimization#二根本原因聚簇因子clustering-factor恶化","kind":"post-heading","value":1},{"source":"p:projects-oracle-erp-performance-optimization","target":"h:projects-oracle-erp-performance-optimization#三分析方法","kind":"post-heading","value":1},{"source":"p:projects-oracle-erp-performance-optimization","target":"h:projects-oracle-erp-performance-optimization#四优化方案","kind":"post-heading","value":1},{"source":"p:projects-oracle-erp-performance-optimization","target":"h:projects-oracle-erp-performance-optimization#五深度分析","kind":"post-heading","value":1},{"source":"p:projects-oracle-erp-performance-optimization","target":"h:projects-oracle-erp-performance-optimization#六优化效果汇总","kind":"post-heading","value":1},{"source":"p:projects-oracle-erp-performance-optimization","target":"h:projects-oracle-erp-performance-optimization#七mrp-性能优化扩展框架","kind":"post-heading","value":1},{"source":"p:projects-oracle-erp-performance-optimization","target":"h:projects-oracle-erp-performance-optimization#八总结","kind":"post-heading","value":1},{"source":"p:projects-oracle-erp-performance-optimization","target":"h:projects-oracle-erp-performance-optimization#九参考资料","kind":"post-heading","value":1},{"source":"t:安全","target":"t:认证","kind":"tag-tag","value":3},{"source":"t:登录","target":"t:认证","kind":"tag-tag","value":3},{"source":"t:安全","target":"t:登录","kind":"tag-tag","value":2},{"source":"t:AI","target":"t:RAG","kind":"tag-tag","value":2},{"source":"t:Java","target":"t:并发编程","kind":"tag-tag","value":2},{"source":"t:3D","target":"t:米塔","kind":"tag-tag","value":1},{"source":"t:3D","target":"t:React","kind":"tag-tag","value":1},{"source":"t:3D","target":"t:Three","kind":"tag-tag","value":1},{"source":"t:安全","target":"t:对象存储","kind":"tag-tag","value":1},{"source":"t:并发编程","target":"t:线程池","kind":"tag-tag","value":1},{"source":"t:并发编程","target":"t:虚拟线程","kind":"tag-tag","value":1},{"source":"t:二开","target":"t:博客","kind":"tag-tag","value":1},{"source":"t:分布式","target":"t:性能优化","kind":"tag-tag","value":1},{"source":"t:缓存设计","target":"t:高并发","kind":"tag-tag","value":1},{"source":"t:架构设计","target":"t:高并发","kind":"tag-tag","value":1},{"source":"t:架构设计","target":"t:缓存设计","kind":"tag-tag","value":1},{"source":"t:前端","target":"t:博客","kind":"tag-tag","value":1},{"source":"t:扫码登录","target":"t:认证","kind":"tag-tag","value":1},{"source":"t:性能优化","target":"t:数据库","kind":"tag-tag","value":1},{"source":"t:AI","target":"t:博客","kind":"tag-tag","value":1},{"source":"t:AI","target":"t:部署","kind":"tag-tag","value":1},{"source":"t:AI","target":"t:工作流","kind":"tag-tag","value":1},{"source":"t:AI","target":"t:前端","kind":"tag-tag","value":1},{"source":"t:AI","target":"t:Bot","kind":"tag-tag","value":1},{"source":"t:AI","target":"t:Cloudflare","kind":"tag-tag","value":1},{"source":"t:AI","target":"t:LLM","kind":"tag-tag","value":1},{"source":"t:AI","target":"t:Prompt","kind":"tag-tag","value":1},{"source":"t:AI","target":"t:Skill","kind":"tag-tag","value":1},{"source":"t:Bitmap","target":"t:分布式","kind":"tag-tag","value":1},{"source":"t:Bitmap","target":"t:性能优化","kind":"tag-tag","value":1},{"source":"t:Bitmap","target":"t:Redis","kind":"tag-tag","value":1},{"source":"t:Bot","target":"t:部署","kind":"tag-tag","value":1},{"source":"t:Cloudflare","target":"t:RAG","kind":"tag-tag","value":1},{"source":"t:firefly","target":"t:博客","kind":"tag-tag","value":1},{"source":"t:firefly","target":"t:二开","kind":"tag-tag","value":1},{"source":"t:Java","target":"t:线程池","kind":"tag-tag","value":1},{"source":"t:Java","target":"t:虚拟线程","kind":"tag-tag","value":1},{"source":"t:JWT","target":"t:安全","kind":"tag-tag","value":1},{"source":"t:JWT","target":"t:认证","kind":"tag-tag","value":1},{"source":"t:LLM","target":"t:RAG","kind":"tag-tag","value":1},{"source":"t:MinIO","target":"t:安全","kind":"tag-tag","value":1},{"source":"t:MinIO","target":"t:对象存储","kind":"tag-tag","value":1},{"source":"t:OAuth2","target":"t:登录","kind":"tag-tag","value":1},{"source":"t:OAuth2","target":"t:认证","kind":"tag-tag","value":1},{"source":"t:Oracle","target":"t:数据库","kind":"tag-tag","value":1},{"source":"t:Oracle","target":"t:性能优化","kind":"tag-tag","value":1},{"source":"t:React","target":"t:米塔","kind":"tag-tag","value":1},{"source":"t:React","target":"t:Three","kind":"tag-tag","value":1},{"source":"t:Redis","target":"t:分布式","kind":"tag-tag","value":1},{"source":"t:Redis","target":"t:高并发","kind":"tag-tag","value":1},{"source":"t:Redis","target":"t:缓存设计","kind":"tag-tag","value":1},{"source":"t:Redis","target":"t:架构设计","kind":"tag-tag","value":1},{"source":"t:Redis","target":"t:性能优化","kind":"tag-tag","value":1},{"source":"t:Skill","target":"t:工作流","kind":"tag-tag","value":1},{"source":"t:Three","target":"t:米塔","kind":"tag-tag","value":1},{"source":"t:Umami","target":"t:部署","kind":"tag-tag","value":1},{"source":"t:Umami","target":"t:Vercel","kind":"tag-tag","value":1},{"source":"t:Vercel","target":"t:部署","kind":"tag-tag","value":1},{"source":"t:WebSocket","target":"t:认证","kind":"tag-tag","value":1},{"source":"t:WebSocket","target":"t:扫码登录","kind":"tag-tag","value":1}],"meta":{"version":1,"categories":[{"id":"c:学习文档","name":"学习文档","url":"/archive/?category=%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3","colorIndex":0,"postCount":8,"tagCount":17},{"id":"c:设计文档","name":"设计文档","url":"/archive/?category=%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3","colorIndex":1,"postCount":6,"tagCount":12},{"id":"c:实践笔记","name":"实践笔记","url":"/archive/?category=%E5%AE%9E%E8%B7%B5%E7%AC%94%E8%AE%B0","colorIndex":2,"postCount":4,"tagCount":12},{"id":"c:部署文档","name":"部署文档","url":"/archive/?category=%E9%83%A8%E7%BD%B2%E6%96%87%E6%A1%A3","colorIndex":3,"postCount":2,"tagCount":5}],"counts":{"category":4,"tag":41,"post":20,"heading":175},"timeRange":{"from":1764633600000,"to":1787788800000},"headingDepth":2}}