我的文档库

多根目录侧边栏

flex-layout

  • Getting Started

  • Guides

  • Reference

typed-rx-http

  • Getting Started

  • Guides

  • Reference

global-rx-state

  • Getting Started

  • Guides

  • Reference

webflux-fe-dev-assistant

reactive-mongo-dsl

Atlas 搜索

根据 1.0.0 配置 Atlas Search 操作符、复合/过滤、得分、高亮、序列令牌、分页/计数和 Driver-native 扩展路径。


基本 Atlas Search
java

$search$searchMeta 必须是聚合管道的第一个阶段,因此与常规 fields(...).end() 流分开。也可以使用省略索引的 .search()

搜索操作符

根构建器:textphraseautocompleteequalsexistsinrangecompound

可重用子句:SearchOperators.text/phrase/autocomplete/equals/in/exists/range

Driver-native 根操作符:operator(SearchOperator)

命名 Driver 包装器:SearchOperators.driver(name, operator)

java

compound 支持 mustmustNotshouldfilterminimumShouldMatchscore,也可以直接传递常规 AtlasSearchOperator

文本 / 短语 / 自动完成
java

text:路径、查询、模糊、匹配标准、同义词、得分

phrase:路径、查询、slop、同义词、得分

autocomplete:单个路径、查询、tokenOrder、模糊、得分

fuzzy(...)synonyms(...) 不会同时使用。

搜索子句与后搜索字段的区别
java

search().fields(...) 不是 $search 内部过滤器,而是 $search 后的常规 $match。要在搜索索引阶段限制候选项,请使用 compound.filter(...)

text
得分与排序
java

scoreDesc()/scoreAsc() 和常规排序的优先级按调用顺序确定。为了稳定的分页,建议将得分与稳定的唯一字段排序结合使用。

高亮/得分详情/序列令牌
java

基本别名是 highlights, scoreDetails, searchSequenceTokenaddFieldsScoreDetails() 也会激活搜索选项的分数详情。

分页 / 序列令牌 / 计数
java

count().execute()

post-search fields(...) 和分数阈值反映的最终管道计数。

count().executeSearchMeta()

$searchMeta 元数据计数。支持 SearchCountType.TOTAL/LOWER_BOUND,并且 post-search $match 不会执行。

existsQuery().execute()

检查搜索管道结果是否存在一条以上。

Driver-native 扩展
java

stage(Bson)$search 之后进入,executeSearchMeta()$searchMeta 元数据计数管道不适用。如果新 Driver 功能优先于 DSL 便利 API 添加,则优先使用 operator, driverOptions, stage, SortSpec.driver, customizeAggregation

© 2026 Byeolnaerim. 保留所有权利.介绍隐私政策