How to do bool Queries in ElasticSearch with Java Api?
Is this one?
private static QueryBuilder getQueryBuilder() { //condition MatchQueryBuilder A = QueryBuilders.matchQuery("content", "A"); MatchQueryBuilder B = QueryBuilders.matchQuery("content", "B"); MatchQueryBuilder C = QueryBuilders.matchQuery("content", "C"); MatchQueryBuilder D = QueryBuilders.matchQuery("content", "D"); MatchQueryBuilder E = QueryBuilders.matchQuery("content", "E"); MatchQueryBuilder F = QueryBuilders.matchQuery("content", "F"); MatchQueryBuilder G = QueryBuilders.matchQuery("name", "Robin"); //Maybe you should use TermQuery //TermQueryBuilder G = QueryBuilders.termQuery("name", "Robin"); //1.(A AND B AND C) BoolQueryBuilder query1 = QueryBuilders.boolQuery(); query1.must(A).must(B).must(C); //2.(D OR E OR F) BoolQueryBuilder query2 = QueryBuilders.boolQuery(); query2.should(D).should(E).should(F); //3.Last BoolQueryBuilder lastQuery = QueryBuilders.boolQuery(); lastQuery.must(query1).must(query2).must(G); //use filter BoolQueryBuilder filterBuiler = QueryBuilders.boolQuery().filter(lastQuery); return filterBuiler;}