mongodb - MongoDB 排序与文本搜索的分数以及其他标准弹簧数据
问题描述
我有电子商务产品的 mongo 文档。我想根据搜索分数进行排序。我在 find 子句中还有其他参数。我的查询是:
db.getCollection('product').find({category_id:42, $text:
{$search:'red'}},{'score': {'$meta': 'textScore'}}).sort({'score': {'$meta': 'textScore'}}).limit(50)
如何在春季数据中执行相同的操作?
我使用了查询和标准,但无法根据分数进行排序:
Query query = new Query();
query.addCriteria(Criteria.where("category_id").is(42));
query.addCriteria(TextCriteria.forDefaultLanguage().
matching("red"));
mongoTemplate.find(query, A.class, "product");
但是这里没有使用分数排序的选项。如何根据分数排序?
解决方案
请查看参考文档并使用 aTextQuery
按分数排序。
TextQuery query = new TextQuery(TextCriteria.forDefaultLanguage().matching("red"));
query.addCriteria(Criteria.where("category_id").is(42));
query.sortByScore();
我创建了DATAMONGO-2407以通过使排序选项更加可见来改进文档。
推荐阅读
- html - 如何将引导活动类应用于 onclick
- r - 在 mgcv 中指定可变系数和因子级复制
- reactjs - 来自通用和模块化样式的多个类
- python - 需要返回时间戳事件的两个通道之间的重合矩阵
- java - 使用 ObjectInputStream 读取包含对象的列表后如何遍历列表?
- rust - 使用从循环中修改结构内部状态的结构方法最惯用的方法是什么?
- bash - Bash 在复制之前将数组值附加到文件
- java - 使用 ObjectMapper 将 JSON 日期格式从 ZonedDateTime 序列化为自定义日期格式
- reactjs - 将包含在 div 中的粘性 SVG 元素定位为溢出
- python - 如何在 Ansible 任务中注册 python 变量