must 方法和 should方法 合并使用的效果出现了偏差

作者 menzhipeng | 发布于5 天前 | 阅读数:68


//匹配articleType 
QueryBuilder articleType = QueryBuilders.multiMatchQuery(searchVo.getArticleType(),"articleType");

QueryBuilder multiMatch = QueryBuilders.wildcardQuery("articleTitle","*"+key+"*"); QueryBuilder multiMatch2 = QueryBuilders.wildcardQuery("articleContent","*"+key+"*"); builder.setQuery(QueryBuilders.boolQuery().must(articleType).should(multiMatch).should(multiMatch2));
 
当不添加must的查询时,查询结果很满意,一旦加上must这个查询就会把很多不该查询出来的数据一起带出来
已邀请:

rochy - rochy_he@jointsky

赞同来自:

不加 must 是全局的结果,排在前面的应该比加了 must(特定类型下的结果)的匹配度更高一些
 
 

menzhipeng

赞同来自:

现在想查询的字段是内层级的,代码应该怎么写?

QueryBuilder tagId = QueryBuilders.multiMatchQuery("allTags.id",value)  这样?
 

要回复问题请先登录注册