Hello I'm new to Elastic Search and I'm trying to build an elastic search query using Java API. I have the following.
int count = 7
QueryBuilder findRangeNumber = QueryBuilders.rangeQuery("numberField").lte(count);
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.must(findRangeNumber);
This return numberField that are equal to 12,6,4, and, 5. I want it to return values where numberField is less than or equal to count (so the number 6,5, and 4 in the example).
If I change number count to 12 it only return numberField that are equal to 12. I'm confuse to how this works and if it possible to it return any value of numberField that is less than or equal to count.
I also have tried the following with no luck
int count = 7
QueryBuilder findRangeNumber = QueryBuilders.rangeQuery("numberField").lte(count).gte(0);
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.must(findRangeNumber);
This is what the query look like when I print out boolQueryBuilder
"must" : [
{
"range" : {
"numberField" : {
"from" : null,
"to" : 7,
"include_lower" : true,
"include_upper" : true,
"boost" : 1.0
}
}
}
],
This is what the full code part look like, of what I'm trying to do.
BoolQueryBuilder boolQuery = new BoolQueryBuilder();
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
int count = 7
if (foo != null) {
boolQuery.should(QueryBuilders.matchQuery("something", matchSomething));
boolQuery.should(QueryBuilders.boolQuery().mustNot(QueryBuilders.existsQuery("foobar status")));
}
if (foobar != null) {
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
queryBuilder.should(QueryBuilders.rangeQuery("someDateField").from(dateField));
queryBuilder.should(QueryBuilders.rangeQuery("numberField").lte(count));
boolQuery.must(queryBuilder);
}
searchSourceBuilder.query(boolQuery);
Any help would be appreciated!