Graphql query with metafields is returning all the product.

I have been trying to run the following graphql query but it is returning all the product instead of filtering the product based on the metafield.
Here is the query

query Products {
  products(first: 20, query: "metafields.custom.style:\"Mysore Silk\"") {
    edges {
      node {
        id
        title
        metafield(namespace: "custom", key: "style") {
          value
        }
        updatedAt
        createdAt
      }
    }
  }
}

I have one item in the product that matches the above criteria, However the query is returning all the items from the active product list.

Hmm…I see historically Shopify did not support this. But their latest docs at https://shopify.dev/docs/apps/build/custom-data/metafields/query-by-metafield-value states this is now available. As suggested I have enabled the metafield to be searchable

On further digging I think there is still some limitation. I was able to search products with metafield only within a collection like:

query SearchCollectionUsingMetafield {
  collection(handle: "salwar-kameez") {
    handle
    products(
      first: 10
      filters: {productMetafield: {namespace: "custom", key: "style", value: "Mysore Silk"}}
    ) {
      edges {
        node {
          id
          title
          metafield(key: "style", namespace: "custom") {
            value
          }
        }
      }
    }
  }
}

However I am not able to filter the products directly based on the metafield.

Thanks @collins_leiur for your response.