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");

但是这里没有选择使用得分排序的选项。如何根据分数排序?

zh860103 回答:MongoDB按文本搜索分数与其他条件弹簧数据一起排序

请查看reference documentation并使用sa.sa_flags = SA_RESTART;来应用得分排序。

TextQuery

我创建了DATAMONGO-2407来通过使排序选项更加可见来改进文档。

本文链接:https://www.f2er.com/3154130.html

大家都在问