搜尋與檢索:概覽
Published: Sun Feb 15 2026 | Modified: Sat Feb 07 2026 , 1 minutes reading.
搜尋與檢索:「不去看」的藝術
巴別圖書館難題
想像妳進入了巴別圖書館,裡面藏著人類歷史上所有的書籍。如果妳想找一個特定的句子,妳有兩個選擇:
- 暴力搜尋: 一本一本地讀。在妳讀完第一個書架之前,妳的人生就結束了。
- 索引: 查看一份預先做好的目錄,它能準確地告訴妳哪本書、哪一頁包含那個句子。
在軟體工程中,搜尋 幾乎從來不是關於「觀察數據」。它是關於建構結構,讓妳能夠跳過 99.99% 的無效數據。
尋找的進化史
搜尋技術經歷了四個不同的「靈魂」階段:
| 策略 | 靈魂 / 隱喻 | 代表演算法 | 最佳應用場景 |
|---|---|---|---|
| 索引 (Indexing) | 圖書館目錄 在搜尋開始前,將關鍵字映射到位置。 | 倒排索引 | 全文檢索 (Elasticsearch, Lucene) |
| 前綴 (Prefixing) | 預判的打字員 透過共同的開頭來鎖定目標。 | Trie / 基數樹 | 自動補全 / 路由 (搜尋框、IP 路由) |
| 匹配 (Matching) | 模式識別專家 在特定的草堆裡尋找特定的針。 | KMP / Boyer-Moore | 日誌分析 / 生物資訊 (Grep, DNA 測序) |
| 語義 (Similarity) | 讀心者 尋找「意思」相近的東西,哪怕她們長得不一樣。 | 向量檢索 / LSH | 推薦系統 / AI (ChatGPT, 相似圖搜) |
搜尋的規模感
妳選擇哪種演算法,完全取決於妳的數據規模和對錯誤的容忍度:
- 小規模且精確: 使用哈希表 (Hash Map) 或 前綴樹 (Trie)。
- 大規模且文本化: 使用倒排索引 (Inverted Index)。
- 海量且模糊: 使用 LSH 或 向量檢索 (ANN)。
工程思維:預計算即自由
搜尋的第一定律是:搜尋速度是用「寫入階段」的成本換來的。 如果妳想以 或 的速度找到東西,妳就必須在數據到達時,花費 的時間和巨大的磁碟空間去建構索引。搜尋是儲存空間與響應延遲之間最終極的「權衡」。
小結
在本章中,我們將從古老的字串匹配智慧,跨越到未來感十足的向量嵌入世界。我們將明白:找到一根針,靠的不是更好的視力,而是把草堆組織得讓那根針無處遁形。
讓我們從現代網際網路的基石開始:倒排索引。
