首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Mongo Spring数据定义TextCriteria查询中的最小分数

用Mongo Spring数据定义TextCriteria查询中的最小分数
EN

Stack Overflow用户
提问于 2020-12-02 06:44:58
回答 1查看 49关注 0票数 0

我有一个动态查询,它依赖于文本索引和其他字段。我希望能够指定一个最小分数,这样低于最小分数的内容就不会从查询中返回,因为文本匹配并不真正接近我们要包含的结果。

我尝试了以下方法,但是查询并没有返回我所期望的结果,而是什么也没有返回。

代码语言:javascript
复制
        Query dynamicQuery = new Query().with(pageable);
        if(includeSearch){
            TextCriteria textCriteria = TextCriteria.forDefaultLanguage().matchingAny(search.trim());
            Criteria minScoreCriteria = Criteria.where("score").gte(2.0);
            dynamicQuery.addCriteria(textCriteria);
            dynamicQuery.addCriteria(minScoreCriteria);
        }

        if(includeSomethingElse){
            Criteria genreCriteria = Criteria.where("somethingelse").in(list);
            dynamicQuery.addCriteria(genreCriteria);
        }

        if(includeAnotherThing){
            Criteria bpmCriteria = Criteria.where("anotherThing").gte(range[0]).lte(range[1]);
            dynamicQuery.addCriteria(bpmCriteria);
        }

        List<MyClass> vos = mongoTemplate.find(dynamicQuery, MyClass.class, "collection_name");
EN

回答 1

Stack Overflow用户

发布于 2020-12-03 01:07:02

文本分数({ $meta: "textScore" })只能用于常规查询中的投影和排序。因此,查询不匹配任何文档。

欲知详情,请访问:Text Score Metadata

请使用Aggregation根据MongoDB reference documentation中所述的分数进行筛选。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65099676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档