Search code examples
javaelasticsearchquerydslelasticsearch-dslelasticsearch-java-api

How should query does it work ? ElasticSearch Java API


I just want to get all result from a simple Pseudo-SQL query like that:

[...] WHERE 'idGroups' = '7078' AND ('titre' LIKE '%fuite%' OR 'tag' LIKE '%fuite%' OR 'message' LIKE '%fuite%')

In done that:

        BoolQueryBuilder qb = QueryBuilders
                .boolQuery()
                .must(QueryBuilders.termQuery("idGroups", 7078))
                .should(QueryBuilders.termQuery("titre", "fuite"))
                .should(QueryBuilders.termQuery("tag", "fuite"))
                .should(QueryBuilders.termQuery("message", "fuite"));

Obviously, that is not returning me desired result .. What's wrong?

Thank you :)


Solution

  • Can you try this:

    QueryBuilders
                .boolQuery()
                .must(QueryBuilders.termQuery("idGroups", 7078))
                .should(QueryBuilders.wildcardQuery("titre", "*fuite*"))
                .should(QueryBuilders.wildcardQuery("tag", "*fuite*"))
                .should(QueryBuilders.wildcardQuery("message", "*fuite*")).minimumShouldMatch(1);