我有这个 mongo 查询(java):
TextQuery.queryText(textCriteria).sortByScore().limit(configuration.getSearchResultSize())
它执行文本搜索并按分数排序。我对文档中的不同字段给出了不同的 wiehgt,现在我只想检索分数低于 10 的结果。
有没有办法将该条件添加到查询中?
这没有用:
query.addCriteria(Criteria.where("score").lt(10));
如果唯一的方法是使用聚合 - 我需要一个 mongoTemplate 示例。
换句话说
如何将以下 mongo shell 聚合命令转换为 java spring 的 mongoTemplate 命令?在任何地方都找不到如何将聚合的 match() API 与 $text 搜索组件一起使用($text 在几个不同的字段上被索引):
db.text.aggregate(
[
{ $match: { $text: { $search: "read" } } },
{ $project: { title: 1, score: { $meta: "textScore" } } },
{ $match: { score: { $lt: 10.0 } } }
]
)
谢谢!