I have an elasticsearch index with document mappings that look like:

```json
{
  "properties": {
    "tags": {"type": "keyword"}
  }
}

```

where the document looks like

```json
{
  "_source": {
    "tags": ["one", "two"]
  }
}

```

I am trying to query it in such a way that it will be excluded from the search results if (and only if) it has ALL of the tags submitted with the request.

Examples:

searched with tags `["one"]`: included

searched with tags `["one", "three"]`: included

searched with tags `["one", "two"]`: excluded

searched with tags `["one", "two", "three"]`: excluded

I'm having a hard time getting this to work with bool queries. The closest I have gotten is with this query:

```json
{
  "query": {
    "bool": {
      "filter": {
        "bool": {
          "must": [
            {
              "bool": {
                "must_not": [{
                  "terms": {"tags": ["one", "two"]}
                }]
              }
            }
          ]
        }
      }
    }
  }
}

```

but it is still filtering out results when only one of the tags matches. i.e. if I only submit `["one"]`. Any guidance on this would be greatly appreciated.