多条件Java API
//添加bool查询条件(关键字)
// addBoolQueryBuilderKeywordCondition(boolQueryBuilder,esArticle.getArticleType(),esArticle.getKeyword());
if (null != esArticle.getKeyword() && "" != esArticle.getKeyword()) {
BoolQueryBuilder keywordBuilder = QueryBuilders.boolQuery().should(QueryBuilders.matchQuery("articleCnName", esArticle.getKeyword()))
.should(QueryBuilders.matchQuery("articleEnName", esArticle.getKeyword()))
.should(QueryBuilders.matchQuery("articleContent", esArticle.getKeyword()))
.should(QueryBuilders.matchQuery("articleTag", esArticle.getKeyword()));
boolQueryBuilder.must(keywordBuilder);
}
//添加bool查询条件(类别)
if (null != esArticle.getArticleType() && "" != esArticle.getArticleType()) {
BoolQueryBuilder typeBuilder = QueryBuilders.boolQuery().must(QueryBuilders.termQuery("articleSource", esArticle.getArticleType()));
boolQueryBuilder.must(typeBuilder);
}
//添加bool查询条件(时间)
// addBoolQueryBuilderTimeCondition(boolQueryBuilder,esArticle.getStartTime(),esArticle.getEndTime());
if (null != esArticle.getStartTime() && "" != esArticle.getStartTime() && null != esArticle.getEndTime() && "" != esArticle.getEndTime()) {
BoolQueryBuilder timeBuilder = QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery("articleTime").gte(esArticle.getStartTime()).lte(esArticle.getEndTime()));
boolQueryBuilder.must(timeBuilder);
}