SQLite FTS5 全文搜索引擎详解
FTS5(Full Text Search 5)是 SQLite 内置的 全文搜索扩展 ,让你在不依赖外部搜索引擎(Elasticsearch、Solr)的情况下,用纯 SQL 实现高性能的文本检索。它的 API 比前代 FTS3/FTS4 更清晰,性能更好,是 SQLite 全文搜索的首选方案。 一、FTS5 是什么 简单说: FTS5 让你像查数据库一样搜索文本内容 。 传统 LIKE ‘%关键词%’ 的问题: 每次查询都要扫描全表...
golang文档
1\. Go 是什么 Go 是一种 强类型、垃圾回收、原生支持并发 的编程语言。代码由 package 组成;用 module 管理依赖;可执行程序通常从 package main 的 main() 函数开始运行。Go 官方一直强调兼容性,Go 1.26 也继续保持 Go 1 的兼容承诺。 最小可运行程序: 这里你已经看到了 Go 最核心的 3 个语法点: package 声明包、import 导入包、func 声明函数。main 包里...
揭秘 Next.js 的图像魔法
揭秘 Next.js 的“图像魔法”:不仅仅是自动压缩 你可能以为 组件只是帮你把图片体积变小了,但实际上,它更像是一个 实时的图像处理引擎 。当你把一张高清大图扔给它时,Next.js 会在服务器端(或构建时)根据用户的设备情况,动态生成最合适的图片版本。 这背后主要依赖以下几个核心机制: 现代格式的自动转码 这是性能提升最显著的一点。你上传的可能是兼容性最好的 JPG 或 PNG,但 Next.js 会检测访问者浏览器的能力。 We...
RAG和向量数据库
简单来说,如果把大语言模型(LLM)比作一个博学的“大脑”,那么 RAG(检索增强生成) 就是让这个大脑学会“查资料”的方法,而 向量数据库 就是存放这些资料并能被快速检索的“智能图书馆”。 为了让你更直观地理解,我们可以把它们拆解来看: 🧠 什么是 RAG (检索增强生成)? RAG 的全称是 Retrieval Augmented Generation 。你可以把它理解为给 AI 进行的一场“开卷考试”。 在没有 RAG 之前,A...
网页唤起 Android App 调试笔记(App Links)
在最近的项目中,我遇到了 网页访问特定 URL 应该唤起 Android App,但实际只打开网页 的问题。通过调试和排查,整理出以下经验和步骤。 1\. 项目与环境信息(脱敏处理) 网站域名: 唤起页面: Android App 包名: intent filter 配置示例: assetlinks.json 已上线,包含 App 的 SHA256 签名指纹 2\. 问题现象 用户访问 页面时, 网页打开了,但 App 没...
数据库索引核心原理笔记:从作用机制到底层实现
摘要 :本文系统梳理了数据库索引的核心作用、B+ 树底层原理、聚簇与非聚簇索引的区别,以及索引生效的真实逻辑。重点澄清了“索引查询是否等于全表扫描”的常见误区,并总结了索引设计的最佳实践。 一、索引的核心作用:用空间换时间 索引是数据库提升查询性能的“核武器”,其本质是 通过额外的存储空间和写入代价,换取读取速度的指数级提升 。 1\. 主要收益 加速数据检索 :将时间复杂度从 $O(N)$(全表扫描)降低至 $O(\log N)$(树...
Bun 为什么比 pnpm(以及 npm、Yarn)快
Bun 之所以比 pnpm(以及 npm、Yarn)快,核心原因在于其 底层架构的彻底重构 。pnpm 虽然通过硬链接和内容寻址解决了磁盘空间和部分安装效率问题,但它本质上仍是一个运行在 Node.js 之上的 JavaScript 工具;而 Bun 是从底层用 Zig 语言 编写的原生二进制程序,并深度集成了 JavaScriptCore 引擎。 以下是 Bun 比 pnpm 快的具体技术原因: 1\. 编程语言与执行环境的差异(最根...
深度解析:NODE_ENV 与 Mode (模式)
在现代前端开发中,尤其是使用 Vite 、 Qwik 、 Next.js 等基于 Node.js 的构建工具时,开发者经常会被两个相似的概念绕晕: 和 Mode (模式) 。 它们看起来都在做同一件事:“区分开发环境和生产环境”。但实际上,它们在架构设计中扮演着截然不同却又紧密协作的角色。混淆这两者可能导致构建配置错误、环境变量加载失败,甚至生产环境泄露敏感信息。 一、核心定义:它们到底是什么? 1\. :行业通用的“运行时开关” 起源...
如何在最小副作用下创建 BFC
在 CSS 布局的江湖中, BFC (Block Formatting Context,块级格式化上下文) 是一个老生常谈却又至关重要的概念。无论是解决 高度塌陷 、 清除浮动 ,还是防止 垂直外边距重叠 ,BFC 都是我们的得力助手。 但是,创建 BFC 的方法有很多: 、 、 、 …… 哪种方法对现有布局的“破坏”最小? ❌ 过去的老方法 在过去,为了触发 BFC,我们不得不使用一些带有副作用的“黑客”技巧: : 元素会脱离文档流,...