Altas Search Filter Faceting Result with Autocompletion

Hi Mongo Community,

Context:

We are building an e-commerce application using Altas Search.
Each product in the e-commerce application has a list of designers and categories.

For example:

  • Product1:
    categories:[“categoryA”]
    designers:[“designerA”, “designerB”, “designerC” ]

  • Product2
    categories: [“categoryB”]
    designers:[“designerD”, “designerE”, “designerF” ]

  • Product3
    categories: [“categoryA”, “categoryC”]
    designers:[“designerA”, “designerF”, “designerG” ]

We are implementing a sidebar to filter categories or/and designers.
Similar to this website: example: Men's Designer Bombers | Grailed

Our solution
We use the facet operator in Atlas Search to get the list of designers for a specific category and vice versa, for a designer, get the list of categories.

Since the number of designers for a category can be very long, we only show the top 10 designers. If the user wants to search for another designer that is not in the top 10, we have an entry for the user to search.
Exactly like the website Men's Designer Bombers | Grailed

We are able to achieve this by using the auto-completion and facet operator.
Here is the query we are using:

{
    "$searchMeta":
    {
        "index": "default",
        "facet":
        {
            "operator":
            {
                "compound":
                {
                    "must":
                    [
                        {
                            "autocomplete":
                            {
                                "query": "des",
                                "path": "designers",
                                "tokenOrder": "sequential"
                            }
                        },
                        {
                            "text":
                            {
                                "query": ["footwear"],
                                "path": "categories"
                            }
                        }
                    ]
                }
            },
            "facets":
            {
                "designerFacet":
                {
                    "type": "string",
                    "path": "designers"
                }
            }
        }
    }
}

Problem
The problem with this query is that we are dealing with the designers attribute which is an array
If we have a product with “Nike” and “Sean Mcdowell” as designers, and we search for the keyword “nik”, we will also get Sean Mcdowell in the autocompletion, which is not very precise/accurate.
I understand that mongo under the hood uses the value in the array for faceting and it’s the reason why we have this result.

We can filter the result afterwards (for example in the frontend), but in case we have a lot of products with several designers and we limit the number of buckets, some results may never appear in the autocompletion result . Specifically, the designer who is associated with a very small amount of product.

I know Algolia have a feature to search in the facet values (Search for facet values API Reference | Algolia)

Is this something mongo support? Is there anyone has an idea/suggestion how we can solve this problem?