I have documents that look like:
{ \"tags\" => [ \"tag1\", \"tag2\", ], \"name\" => \"Example 1\" } { \"tags\" => [
You can set minimum_should_match to match your array:
minimum_should_match
{ "query": { "filtered": { "query": { "match_all": {} }, "filter": { "bool": { "must": [ { "terms": { "tags": ["tag1","tag3"], "minimum_should_match": 2 } } ] } } } } }