# ElasticSearch Java API "Should" Array

**URL:** https://discuss.elastic.co/t/elasticsearch-java-api-should-array/62084
**Category:** Elasticsearch
**Created:** [October 3, 2016, 3:16pm UTC](https://discuss.elastic.co/t/elasticsearch-java-api-should-array/62084 "2016-10-03T15:16:22Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![yeikel](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/yeikel/32/125434_2.png) [@yeikel](https://discuss.elastic.co/u/yeikel)
#### Post date: [October 3, 2016, 3:16pm UTC](https://discuss.elastic.co/t/elasticsearch-java-api-should-array/62084/1 "2016-10-03T15:16:22Z")

</div>

I am trying to convert the following query :

```
GET /consumer/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "bool": {
            "must": [
              {
                "match": {
                  "first_name": {
                    "query": "Peter"
                  }
                }
              },
              {
                "match": {
                  "last_name": {
                    "query": "Parker"
                  }
                }
              }
            ]
          }
        },
        {
          "bool": {
            "must": [
              {
                "match": {
                  "first_name": {
                    "query": "Parker"
                  }
                }
              },
              {
                "match": {
                  "last_name": {
                    "query": "Peter"
                  }
                }
              }
            ]
          }
        }
      ]
    }
  }
}

```

I tried the following :

```
 query = QueryBuilders.boolQuery()
	.should(QueryBuilders.boolQuery()
 	.must(QueryBuilders.matchQuery("first_name", "Peter").type(null))
	.must(QueryBuilders.matchQuery("last_name""Parker").type(null))
	.must(QueryBuilders.matchQuery("first_name","Parker").type(null))
	.must(QueryBuilders.matchQuery("last_name","Peter").type(null)))

```

But that's obviously not the same.

I also tried :

```
 .should(QueryBuilders.boolQuery()
 .must(QueryBuilders.matchQuery("first_name", "Peter").type(null))
 .must(QueryBuilders.matchQuery("last_name", "Parker").type(null))
 .should(QueryBuilders.boolQuery()
 .must(QueryBuilders.matchQuery("first_name", "Parker").type(null))
 .must(QueryBuilders.matchQuery("last_name", "Peter").type(null))))

```

But it did not work as well

Thank you!

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [July 5, 2017, 10:15pm UTC](https://discuss.elastic.co/t/elasticsearch-java-api-should-array/62084/2 "2017-07-05T22:15:22Z")

</div>


