# Don't Panic > Learn, think, and write. Personal blog by tang-hi, covering databases, search engines, vector search, C++, and systems internals. Some posts are available in both Chinese and English. ## Posts - [revisit: HNSW 上的过滤算法](https://tangdh.life/posts/vector-search/hnsw-filter/): 从向量搜索诞生起,过滤就像一块挥之不去的阴云,这篇博客将会系统梳理目前主流过滤算法的取舍 - [我的第一个小生意](https://tangdh.life/posts/interesting/first-business/): 这周我解锁了一个新的人生成就——开启自己的小生意 - [2025年度回顾](https://tangdh.life/posts/interesting/rewind-2025/): 2025年我依旧没有暴富, 但我觉得这是暴富的开始 - [经典的倒排索引 - Finite State Transducers (实现篇)](https://tangdh.life/posts/ir/fst-implement/): 倒排索引是搜索引擎中最核心的数据结构之一,也是搜索引擎区别于其他数据库系统的关键所在。FST 则是倒排索引的一个经典实现方式。这次我们讲实现。 - [经典的倒排索引 - Finite State Transducers (描述篇)](https://tangdh.life/posts/ir/fst-overview/): 倒排索引是搜索引擎中最核心的数据结构之一,也是搜索引擎区别于其他数据库系统的关键所在。FST 则是倒排索引的一个经典实现方式. - [揭秘高维向量:巧用“反直觉”特性,让向量搜索飞起来!](https://tangdh.life/posts/vector-search/high-dimension/): 随着向量搜索的广泛使用,我们需要计算的向量维数也越来越高,由此带来的计算/存储压力也越来越大。那么在高维向量中,有什么特性是可以被我们所利用,从而减少距离计算时间/存储成本? 本文将试图回答这一问题。 - [为什么ncdu这么快?](https://tangdh.life/posts/interesting/ncdu/): 上周被同事发现我就是导致组里磁盘满的罪魁祸首后,由此引发的一系列有趣调试历程 - [我的第一款Chrome插件以及AI时代的思考](https://tangdh.life/posts/interesting/first-plugin/): 我开发了我的第一款Chrome插件 smartTab,以及我在开发过程中的一些思考 - [从 double free 再熟悉链接器](https://tangdh.life/posts/interesting/double-free/): 在工作中遇到了一个因为链接导致的double free bug,这篇文章将会从这个bug出发,再次熟悉链接器的工作原理。 - [Back to Basic - 文档打分及检索优化](https://tangdh.life/posts/ir/doc-similarity/): 当用户在搜索框中输入`Query`后,我们应该如何基于用户的`Query`来对文档进行排序, 又该如何快速的返回用户所需的结果? 这篇文章会解释相关的基础知识。 - [fsync is Costly, But Don't Avoid It](https://tangdh.life/posts/interesting/fsync/): Is fsync slow, And If So, What Can You Do About It? - [设计一款自己的代码配色](https://tangdh.life/posts/design/code-color-theme/): 从色彩的基本知识开始, 设计出自己专属的代码配色 - [期权学习笔记](https://tangdh.life/posts/invest/option/): 期权是一种衍生证券,它的价值取决于或衍生于其他证券的价格. 本文是对期权的学习笔记 - [[译] Binary quantization](https://tangdh.life/posts/vector-search/bq/): Binary quantization 是一种向量压缩技术, 在Weaviate中该技术被用来减少HNSW索引以及Flat Index的内存占用 - [DuckDB -- 浮点数的压缩](https://tangdh.life/posts/database/duckdb-alp/): DuckDB 是一款开源 OLAP 数据库。与 SQLite 类似,本文将介绍DuckDB是如何对它的浮点数数组进行压缩 - [DuckDB -- table's file format](https://tangdh.life/posts/database/duckdb-file-en/): DuckDB is an open-source OLAP database. Similar to SQLite, this article will introduce how DuckDB stores its table structure. - [有趣的知识 -- CPU利用率,延迟,吞吐量之间的关系](https://tangdh.life/posts/interesting/latency-and-throughput/): 通过数学的方式确定CPU利用率,延迟,吞吐量之间的关系 - [DuckDB -- MVCC和增删改查](https://tangdh.life/posts/database/duckdb-mvcc/): DuckDB 是一款开源 OLAP 数据库。与 SQLite 类似,本文将介绍DuckDB内部所使用的MVCC机制以及增删改查的实现 - [DuckDB -- ART索引](https://tangdh.life/posts/database/duckdb-index/): DuckDB 是一款开源 OLAP 数据库。与 SQLite 类似,本文将介绍DuckDB内部所使用的索引结构 - [DuckDB -- table的存储格式](https://tangdh.life/posts/database/duckdb-file/): DuckDB 是一款开源 OLAP 数据库。与 SQLite 类似,本文将介绍DuckDB是如何存储它的表结构 - [LevelDB(3) -- 压实与版本](https://tangdh.life/posts/database/leveldb-compact/): LevelDB 是一个高效的KV数据库,本文将介绍LevelDB的压实与版本 - [LevelDB(2) -- 读](https://tangdh.life/posts/database/leveldb-read/): LevelDB 是一个高效的KV数据库,本文将介绍LevelDB的读操作,以及相应的迭代器. - [LevelDB(1) -- 写](https://tangdh.life/posts/database/leveldb-write/): LevelDB 是一个高效的KV数据库,本文将介绍LevelDB的写操作,以及相应的文件格式. - [How Lucene Stores Its Forward Index](https://tangdh.life/posts/lucene/how-lucene-store-storedfields/): This article will introduce how Lucene 9.6 stores its forward index, to help readers better understand its internal workings. - [Lucene如何存储正排索引](https://tangdh.life/posts/lucene/lucene-storefields/): 本文将介绍Lucene9.6如何存储它的正排索引,以帮助读者更好地理解其内部工作原理。 - [C++ Memory Model](https://tangdh.life/posts/c/memory-order/): 这篇文章是因为对C++的内存模型和内存顺序感兴趣,在探索后对所学的知识进行一个总结,希望能以一个便于理解的方式让读者轻松了解C++的Memory Model - [Effective cpp](https://tangdh.life/posts/books/effective-cpp/): 这篇文章是我对Effective Cpp的读书总结 - [PQIVF(Prodcut Quantization)](https://tangdh.life/posts/vector-search/pqivf/): Product Quantization是一种用于向量量化的方法,由Hervé Jégou和Olivier Chum于2011年在论文<>中首次提出 - [HNSW (Hierarchical Navigable Small World)](https://tangdh.life/posts/vector-search/hnsw/): HNSW是通过图的方式来解决向量搜索问题的算法,由Y.Malkov与D.Yashunin首次提出 - [文本相关性](https://tangdh.life/posts/ir/doc-relv/): 文本相关性是信息检索和自然语言处理中的一个核心问题。在文本相关性中,我们希望能够量化文本之间的相似程度或相关程度,以便有效地处理和组织文本数据。 - [Virtual 机制](https://tangdh.life/posts/c/virtual/): 这篇文章尝试使用较底层的视角来审视C++中虚函数是如何实现的 - [More Effective C++](https://tangdh.life/posts/books/more-effective-cpp/): 这篇博客主要是用来加深自己对读过的书的记忆。写的内容可能只对我自己产生价值 - [Return Value Optimization](https://tangdh.life/posts/c/rvo/): 这篇文章是因为在油管上看了Jon Kalb在2018年的CppCon上做的演讲,深受启发,决定换一个视角来审视C++的RVO机制。 - [Map Reduce](https://tangdh.life/posts/paper/mapreduce/): MapReduce本质上是为了处理大数据而诞生的框架,它含有两个原语,分别是Map和Reduce(从函数式编程中借鉴过来的概念),而这两个原语因为抽象程度高,因此可以相互组合完成大部分的大数据处理任务