使用ES同一个字段,不同条件or查询
需求: type 字段是使用逗号分隔的字符串,要求多个 值只要与此字段 模糊匹配,即可成功代码完成如下:// 布尔查询BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();//设置typeBoolQueryBuilder typeQueryBuilder = QueryBuilders.boolQuery();
·
需求: type 字段是使用逗号分隔的字符串,要求多个 值只要与此字段 模糊匹配,即可成功
布尔查询(Bool Query)
布尔查询是一种联合查询,可以对多个查询条件进行组合,布尔查询有四个子查询关键词:
有时我们在查询es时,希望能够一次返回符合多个查询条件的结果,如多个时间范围查询、多个项的查询等。
- 使用should进行多个项的查询
代码完成如下:
// 布尔查询
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
//设置type
BoolQueryBuilder typeQueryBuilder = QueryBuilders.boolQuery();
if (levelRelVO.getResourcesTypeList() != null && levelRelVO.getResourcesTypeList().size() > 0) {
for (Integer type : levelRelVO.getResourcesTypeList()) {
MatchQueryBuilder typeBuilder = new MatchQueryBuilder( "type", type );
typeQueryBuilder.should( typeBuilder );
}
boolQueryBuilder.must( typeQueryBuilder );
}
更多推荐
已为社区贡献5条内容
所有评论(0)