搜索两个过滤器与Elasticsearch匹配的位置

I am doing a search with elasticSearch but I would like to filter it and the search must match both filters.

this is the code:

"query" => [
                            "bool" => [
                                "must" => [
                                    'multi_match'=> [
                                        'query'=> $this->input->get('search'),
                                        'fields'=> ["title^2", "description"]
                                    ]
                                ],
                                "filter" => [
                                    "terms" => [ 
                                        "Categories" => ['Featured Works']
                                    ],
                                    "terms" => [
                                        "Tags" => ['Merida']
                                    ]
                                ]
                            ]
                        ]

Bring the search results but take the filter as an OR and I would like an AND

The problem lies in how you define your terms filter in a PHP associative array. Since both have the same keys, only one will end up in your query. Do it like this instead:

                            "filter" => [
                               [
                                 "terms" => [ 
                                    "Categories" => ['Featured Works']
                                 ]
                               ],
                               [
                                 "terms" => [
                                    "Tags" => ['Merida']
                                 ]
                               ]
                            ]