使用List作为构造器(重要)
List<Query> objects = new ArrayList<>();
//Term
if(StringUtil.isNotBlank(user.getId())){
Query titleQuery = TermQuery.of(m -> m
.field("ID")
.value(user.getId())
)._toQuery();
objects.add(titleQuery);
}
//Wildcard
if(StringUtil.isNotBlank(user.getName())){
Query columnNameQuery = WildcardQuery.of(m -> m
.field("NAME").value("*"+ user.getName() + "*"))._toQuery();
objects.add(columnNameQuery);
}
//Range
if(ObjectUtil.isNotEmpty(user.getCreateDate())){
Query sampleNumQuery = RangeQuery.of(m -> m.
field("UPLOADDATE").from(user.getCreateDate()).format("yyyy-MM-dd HH:mm:ss"))._toQuery();
objects.add(sampleNumQuery);
}
SearchResponse<User> response = es.search(s -> s
.index("TEST_INDEX")
.query(p -> p.bool(b-> b.must(objects)))
.from(1)