Searching multiple values in multiple fields

Guess I solved my own problem with this query below:

{
    "query": {
        "bool": {
            "must": [
                { "terms": { "product_id": [123, 456] } },
                {
                    "bool": {
                        "should": [
                            { "match_phrase": { "product_subtype": "subtype abc" } },
                            { "match_phrase": { "product_subtype": "subtype def" } }
                        ]
                    }
                }
            ]
        }
    }
}