按排名对结果排序

时间:2018-02-14 19:52:18

标签: spring mongodb spring-boot mongodb-query aggregation-framework

我正在尝试在Mongo集合中搜索关键字,但结果未根据其排名进行排序..所以在找到匹配后,我使用下面的代码按textcore排序 在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

1 个答案:

答案 0 :(得分:0)

由于我已经在投影中添加了文本核心,因此只显示了文本核心...注释了所有字段的投影