搜尋與 AI 練習題 (Practice - Search and AI)


Part 1:Search System(搜尋系統)

Q1(Recall):為什麼 LIKE '%running shoes%' 不適合做搜尋?兩個原因。


Q2(Recall):倒排索引(Inverted Index)的核心是什麼?建索引前的「文字分析」包含哪些步驟?


Q3(Recall):BM25 排序的兩個核心因子 TF 和 IDF 各代表什麼?


Q4(Application):設計電商搜尋的 Indexing Pipeline。為什麼選 CDC 而不是雙寫?


Q5(Application):Autocomplete 要在用戶輸入每個字元後 100ms 內回應。怎麼設計?


Q6(Application):需要即時一致的庫存狀態,該不該放進搜尋索引?


Q7(Analysis):Elasticsearch 的 Shard 數量為什麼必須在建索引時就算好?如何估算?


Q8(Analysis):如何做到零停機的 Reindex?


Part 2:RAG(Retrieval-Augmented Generation)

Q9(Recall):Foundation model 的四大限制是什麼?


Q10(Recall):RAG 的四個核心元件依序是什麼?


Q11(Recall):Ingestion 的三個步驟是什麼?


Q12(Application):客戶想讓 LLM 回答公司內部政策問題。為什麼 RAG 比 fine-tuning 或「把所有文件塞進 prompt」更好?


Q13(Application):用戶用內部縮寫和產品代號查詢,純 semantic search 找不到。怎麼改善 retrieval?


Q14(Analysis):增強 prompt 裡為什麼要加「If the CONTEXT doesn't contain the answer, say you don't know」?


Q15(Analysis):Agentic RAG 和傳統 RAG 的差異是什麼?Agent 扮演什麼角色?


Part 3:Elasticsearch

Q16(Recall):Elasticsearch 和 Lucene 是什麼關係?


Q17(Recall):mapping 裡 keywordtext 型別差在哪?


Q18(Recall):Elasticsearch 怎麼避免並行更新互相覆蓋?


Q19(Application):搜尋結果要支援翻到第 5000 頁,from/size 為什麼不行?該用什麼?


Q20(Analysis):為什麼 Elasticsearch 不適合「按讚數」這種高頻更新的欄位?


Q21(Analysis):搜 "bill nye"bill 命中幾百萬筆、nye 只有幾百筆。query planner 會怎麼做?這體現什麼設計觀念?


Q22(Application):要在電商系統用 Elasticsearch 做商品搜尋,怎麼跟主資料庫整合?有哪些限制要先講?


Part 4:Vector Database

Q23(Recall):向量資料庫解決什麼傳統資料庫做不到的問題?它的本質是什麼?


Q24(Recall):KNN 暴力搜尋的複雜度是多少?為什麼要改用 ANN?


Q25(Analysis):HNSW、IVF、LSH 三種索引怎麼選?預設用哪個、為什麼?


Q26(Application):「找最相似的 10 個,而且 in stock、價格 < $100」——查詢帶過濾條件怎麼處理?


Q27(Application):客戶要做知識庫問答,問你用哪種向量資料庫。怎麼回答?


Q28(Analysis):什麼是 embedding drift?為什麼它是要事先規劃的營運問題?