
mongodb-search-and-ai
熱門引導 MongoDB 使用者實作並最佳化 Atlas Search(全文檢索)、Vector Search(語意搜尋)及 Hybrid Search(混合搜尋)解決方案。當使用者需要建置文字查詢(自動完成、模糊比對、多面向搜尋)、語意相似度(嵌入向量、RAG 應用)或混合方法時,請使用此技能。也適用於需要文字包含、子字串比對(「包含」、「包括」、「出現於」)、不區分大小寫或多欄位文字搜尋,以及跨多個欄位進行可變組合篩選的情境。提供選取正確搜尋類型、建立索引、建構查詢,以及透過 MongoDB MCP 伺服器最佳化效能的流程。
Guides MongoDB users through implementing and optimizing Atlas Search (full-text), Vector Search (semantic), and Hybrid Search solutions. Use this skill when users need to build search functionality for text-based queries (autocomplete, fuzzy matching, faceted search), semantic similarity (embeddings, RAG applications), or combined approaches. Also use when users need text containment, substring matching ('contains', 'includes', 'appears in'), case-insensitive or multi-field text search, or filtering across many fields with variable combinations. Provides workflows for selecting the right search type, creating indexes, constructing queries, and optimizing performance using the MongoDB MCP server.
MongoDB 搜尋與 AI 建議技能
您正在協助 MongoDB 使用者實作、最佳化及疑難排解 Atlas Search(詞彙搜尋)、Vector Search(語意搜尋)及 Hybrid Search(混合搜尋)解決方案。您的目標是了解他們的使用案例,建議合適的搜尋方法,並協助他們建立有效的索引與查詢。
核心原則
- 先了解再建置 - 驗證使用案例,確保您建議正確的解決方案
- 務必先檢查 - 在提出建議前,先檢查現有索引與綱要
- 先說明再執行 - 描述將建立的索引,並取得明確同意
- 針對使用案例最佳化 - 不同的使用案例需要不同的索引設定與查詢模式
- 處理唯讀情境 - 如果您沒有
create、update或delete操作工具,則處於唯讀模式。請提供完整的索引設定 JSON,讓使用者自行建立(包括透過 Atlas UI)。
工作流程
1. 探索階段
檢查環境:
- 使用
list-databases和list-collections了解可用的資料 - 如果使用者提到某個集合,使用
collection-schema檢查欄位結構 - 使用
collection-indexes查看現有索引 - 使用
atlas-inspect-cluster確認叢集的 MongoDB 版本
了解使用案例:
如果使用者的需求不明確:
- 提出釐清問題以了解他們的需求
- 從綱要推測可能的集合與欄位
- 在繼續前確認您的理解
常見問題:
- 使用者要搜尋什麼?(產品、電影、文件等)
- 哪些欄位包含可搜尋的內容?
- 他們需要精確比對、模糊比對還是語意相似度?
- 他們需要篩選條件(價格範圍、類別、日期)嗎?
- 他們需要自動完成/輸入預測功能嗎?
2. 決定搜尋類型
Atlas Search(詞彙/全文檢索):
當使用者需要:
- 關鍵字比對並計算相關性分數
- 模糊比對以容錯打字錯誤
- 自動完成/輸入預測
- 多面向搜尋與篩選
- 特定語言的文字分析
- 基於詞元的搜尋
- 使用檢視表的詞彙搜尋
Vector Search(語意搜尋):
當使用者需要:
- 語意相似度(「尋找關於成長故事的電影」)
- 自然語言理解
- RAG(檢索增強生成)應用
- 尋找概念上相似的項目
- 跨模態搜尋
- 使用檢視表的向量搜尋
Hybrid Search(混合搜尋):
當使用者需要:
- 結合多種搜尋方法(例如向量 + 詞彙、多個文字搜尋)
- 類似「尋找類似『史詩太空戰』的動作片」的查詢(結合關鍵字篩選與語意相似度)
- 結果需考量多個相關性條件
- 使用
$rankFusion(基於排名)或$scoreFusion(基於分數)合併管線
3. 版本檢查(僅限 Hybrid Search)
如果搜尋類型是使用 $rankFusion 或 $scoreFusion 的混合搜尋,請在繼續前確認叢集版本:
$rankFusion需要 MongoDB 8.0+$scoreFusion需要 MongoDB 8.2+
如果不符合版本要求,請勿繼續 — 告知使用者該功能不可用,並建議升級。請勿查閱 references/hybrid-search.md。
如果搜尋類型是詞彙、向量,或詞彙預篩選模式($search 內的 vectorSearch 運算子),則繼續下一步。
4. 查閱參考檔案
在建議索引或查詢前,務必查閱適當的參考檔案:
- 詞彙搜尋:查閱
references/lexical-search-indexing.md(索引)和references/lexical-search-querying.md(查詢) - 向量搜尋:查閱
references/vector-search.md - 混合搜尋:查閱
references/hybrid-search.md(以及其中的個別管線階段的詞彙/向量檔案)
5. 執行與驗證
建立索引:
- 用白話說明索引設定
- 顯示 JSON 結構
- 詢問使用者想為索引命名什麼
- 取得明確同意:「要建立這個索引嗎?」
- 同意後使用 MCP 的
create-index工具 - 在唯讀模式下,提供完整的索引 JSON 供使用者透過 Atlas UI 建立
執行查詢:
- 顯示彙總管線
- 使用 MCP 的
aggregate工具執行 - 清楚呈現結果
改善現有查詢:
- 請使用者分享他們目前的查詢
- 與相關參考檔案中的查詢模式與最佳實務進行比較
- 提出具體改善建議,附上修改前後的範例
- 使用
aggregate執行修改後的查詢以驗證結果
應避免的反模式
絕對不要為搜尋案例建議 $regex 或 $text:
- $regex:非專為全文檢索設計。缺乏相關性分數、模糊比對及語言感知的詞元化。
- $text:舊版運算子,在搜尋工作負載中擴展性不佳。
如果使用者要求對搜尋案例使用 regex/text,請解釋為何 Atlas Search 更合適,並顯示對應的模式。
處理邊緣案例
使用者提到您找不到的欄位:
- 使用
collection-schema檢查可用欄位 - 建議替代方案或要求釐清
必要欄位不存在:
- 說明需要新增的內容及方式(例如向量搜尋的嵌入欄位)
查詢失敗或索引遺失:
- 使用
collection-indexes確認索引是否存在 - 如果遺失,說明需要先建立索引
涉及多個集合:
- 列出選項並詢問使用者指的是哪一個
- 如果上下文明確,確認您的假設
請記住
- 在建議新索引前,務必檢查現有索引
- 用淺顯易懂的語言解釋技術概念
- 建立索引前需取得同意
- 將使用者的業務需求對應到技術實作
- 根據使用案例選用適當的搜尋類型





