共用方式為


Azure Cosmos DB 中適用於 MongoDB 的 Full-Text 搜尋功能(vCore)

以虛擬核心為基礎的 Azure Cosmos DB for MongoDB 中的全文搜尋功能提供超越傳統查詢方法的強大文件搜尋功能。 此進階搜尋技術可讓用戶根據自然語言處理、詞彙變化和內容相關性來尋找相關內容,而不只是完全相符的項目。

整合式文字搜尋引擎會移除外部搜尋服務的需求。 這有助於簡化資料庫架構。 它會使用特製化的文字索引,有效率地處理搜尋作業。 系統會處理、標記化及分析文件內容。 因此,您的應用程式可以快速找到包含特定關鍵詞、片語或相關字詞的檔。

備註

以虛擬核心為基礎的 Azure Cosmos DB for MongoDB 中的全文搜索會在幕後使用 PostgreSQL 樣式的 TSVector 索引,並支援 MongoDB 的 $text 作員。

功能支援

特徵 / 功能 支援層級 說明 範例查詢
Tokenization 支持 使用 TSVector 將文字細分為個別令牌 不適用
詞幹分析 支持 根據語言分析器,將變形字詞轉換為其根形式 不適用
語言支援 部分支持 支持丹麥文(da)、荷蘭文(nl)、英文(en)、芬蘭文(fi)、法文(fr)、德文(de)、匈牙利文(hu)、義大利文(it)、挪威文(nb)、葡萄牙文(pt)、羅馬尼亞文(ro)、俄文(ru)、西班牙文(es)、瑞典文(sv)、土耳其文(tr)等。 db.text_search.find({ "$text": { "$search": "leche", "$language": "es" } })
以字詞為基礎的搜尋 支持 索引欄位中的完全符合字詞搜尋 db.movies.find({ "$text": { "$search": "surfer" } })
片語搜尋 部分支持 使用引號進行精確片語比對。 有些相容性問題存在。 db.text_search.find({ "$text": { "$search": "\"are cats\"" } })
前置詞查詢 支持 使用 regex 尋找以模式開頭的字詞 db.articles.find({ title: { $regex: /^data/i } })
萬用字元搜尋 支持 使用 regex + $text 比對彈性模式 db.articles.find({ $and: [ { $text: { $search: "hello" } }, { title: { $regex: /.*world.*/i } } ] })
Regex 搜尋 支持 使用正則表達式進行彈性文字模式比對 db.articles.find({ title: { $regex: /^hello.*world$/i } })
布爾運算子 支持 使用 +- 以包含/排除字詞 db.text_search.find({ "$text": { "$search": "cafe +con" } })
多重比對 部分支持 透過結合索引與權數的多欄位查詢 db.myColl.createIndex({ title: "text", genre: "text" }, { default_language: "english", weights: { title: 10, genre: 3 } })
多面向搜尋 不提供 依類別或標籤篩選搜尋結果(例如品牌、色彩、價格)。 vCore 文字搜尋並未原生支援。 不適用
自動完成和提升 不提供 不支援特定字詞的自動完成 (預先輸入建議) 和查詢時間提升。 提升只能在索引層級透過欄位加權完成。 不適用
自定義分析器 不提供 不支援自定義令牌化或篩選 不適用
同義字支援 不提供 沒有對同義字的內建支援 不適用
模糊搜尋 不提供 不支援錯字容忍或模糊比對 不適用
鄰近搜尋 不提供 無法搜尋在特定字距內的詞彙 不適用

後續步驟