We have an engine containing products with multiple fields. One of the fields is called filter_keys and contains a list of all the filters that apply to that particular product.
E.g. For a pair of jeans it would contain “brand-levis, color-blue, category-pants, type-jeans, fabric-cotton”
If we do a query to filter all pants we can filter on “category-pants”. We get the results and a combination of all other possible facets. Facets in this case would be “brand-levis, color-blue, type-jeans, fabric-cotton” for this product and added values coming from other results.
In the Frontend we group all the facets and show each value as an checkbox to refine the search.
So if the result set contains 3 other colors of pants we would show the user a list of red / blue / black / brown checkboxes.
This system works great, but we are facing a challenge due to the limit of facets returning.
The max amount of facets returning for a search is 250. This means if we do a product search without any query or filtering we would expect to get around 1000 facets back (might still grow) but get only 250.
So if we take brands as an example we only get back 4 brands where we expect 25.
We have considered splitting the filters in groups so we reduce the umber of facets per field but that means that we create a much tighter relation between filters and the schema so changes in the filters will become more impactful.
Does anybody have a suggested solution on this?
Is there a way to increase this limit, maybe temporary until we get a more permanent solution?
Do you know how it is determined what facets are being cut off if there are more than 250?