Elasticsearch Java Jest client query builder range with bool query
Try this.
QueryBuilder rangeQuery = QueryBuilders.rangeQuery("field").from("2016-01-01||/D").to("2017-01-01||/D").includeLower(true).includeUpper(false);QueryBuilder termsQuery = QueryBuilders.boolQuery().must(QueryBuilders.termsQuery("field1","12")).must(QueryBuilders.termQuery("field2", "abc")).must(QueryBuilders.termQuery("field3", "def"));QueryBuilder qb = QueryBuilders.boolQuery().should(rangeQuery).should(termsQuery);
You need a range query like below:
QueryBuilder rangeQ = QueryBuilders .rangeQuery("begindate") .from(5) .to(10);
then combine the two queries with a should:
QueryBuilder qb = QueryBuilders .boolQuery() .should(rangeQ) .should(boolQ);
Take a look at this post: How to construct a boolquery dynamically in java api? for more information.