【发布时间】:2018-07-25 11:53:27
【问题描述】:
我正在尝试在 Mongo 集合中搜索关键字,但结果未按其排名排序..所以在找到匹配项后,我使用下面的代码按 textscore 排序 在java代码中,我正在写
Aggregates.project(Projections.metaTextScore("textScore"))
Aggregates.sort(Sorts.metaTextScore("textScore"))
我收到错误消息“管道需要文本分数元数据,但没有可用的文本分数”
我已经在字段上创建了一个文本索引。如果您能指出我正确的方向,不胜感激。
public Document find(Map<String,String> params){
ProcessRequest request = new ProcessRequest();
request.parseSearch(params);
MongoCollection<Document> mcollection = mconfig.getRecordCollection();
long count = mcollection.count(request.getFilter());
logger.info("Count :"+count);
AggregateIterable<Document> aggre = null;
try{
aggre = mcollection.aggregate(request.getQueryList());
}
catch(Exception e){
logger.info(e.getMessage());
}
Document resultDoc = new Document();
resultDoc.put("ResultCount", count);
resultDoc.put("PageSize", request.getPageSize());
resultDoc.put("ResultData",aggre);
return resultDoc;
}
谢谢 SK
【问题讨论】:
-
你能告诉我们整个聚合吗?
-
@Veeram 我已经用更多细节更新了问题
-
没有看到任何文本搜索代码。你有更多的代码吗?你的 spring mongo jar 版本是什么?
-
spring mongo jar 是 3.4.2
标签: spring mongodb spring-boot mongodb-query aggregation-framework