你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

用于 Azure Cosmos DB for MongoDB (vCore) 中的全文搜索功能

基于 vCore 的 Azure Cosmos DB for MongoDB 中的全文搜索功能提供了强大的文档搜索功能,超出了传统查询方法。 这种高级搜索技术使用户能够基于自然语言处理、单词变体和上下文相关性(而不仅仅是完全匹配)来发现相关内容。

集成文本搜索引擎无需外部搜索服务。 这有助于简化数据库体系结构。 它使用专用文本索引高效处理搜索作。 系统处理、标记和分析文档内容。 因此,应用程序可以快速查找包含特定关键字、短语或相关术语的文档。

注释

基于 vCore 的 Azure Cosmos DB for MongoDB 的全文搜索在底层使用 PostgreSQL 风格的 TSVector 索引,并支持 MongoDB 的 $text 操作符。

功能支持

功能 / 特点 支持级别 DESCRIPTION 示例查询
标记化 已支持 使用 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\"" } })
前缀查询 已支持 使用正则表达式查找以模式开头的术语 db.articles.find({ title: { $regex: /^data/i } })
通配符搜索 已支持 使用正则表达式 + $text 的匹配灵活模式 db.articles.find({ $and: [ { $text: { $search: "hello" } }, { title: { $regex: /.*world.*/i } } ] })
正则表达式搜索 已支持 使用正则表达式进行灵活的文本模式匹配 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 文本搜索中不受支持本机。 不适用
自动完成和提升 不可用 不支持自动完成(预先输入建议)和查询时提升特定术语。 只能通过字段权重在索引级别执行提升。 不适用
自定义分析器 不可用 不支持自定义标记化或筛选 不适用
同义词支持 不可用 没有对同义词的原生支持 不适用
模糊搜索 不可用 不支持拼写错误容忍功能或模糊匹配功能 不适用
邻近搜索 不可用 无法在特定的词间距离内搜索词条 不适用

后续步骤