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

用于 MongoDB 的 Azure Cosmos DB 中的全文搜索功能(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 文本搜索中不受支持本机。 不适用
自动完成和提升 不可用 不支持自动完成(预先输入建议)和查询时提升特定术语。 只能通过字段权重在索引级别执行提升。 不适用
自定义分析器 不可用 不支持自定义标记化或筛选 不适用
同义词支持 不可用 没有对同义词的原生支持 不适用
模糊搜索 不可用 不支持拼写错误容忍功能或模糊匹配功能 不适用
邻近搜索 不可用 无法在特定字词距离内搜索词 不适用

后续步骤