In my current project there are many attributes (approx. 290) which have to be configured as facets for users to be able to refine their search results. I wanted to know if there is any limit on the number of facets that can be configured in Algolia.
Thanks in advance.
There is a limit of 64 searchable attributes (where we index the face values). There is not currently a hard limit non-searchable facets, but anecdotally we’ve heard of occasional strangeness displaying facets to the browser when you get above 100. You will also see longer indexing times with a large number of facets.
As a general rule we encourage building your indexes in a way that allows you to minimize the amount of data to what is needed for search context. 290 is a lot of individual interactions to expect of your users. Could it make more sense to split it into several more contextual indexes?
Thanks @chuck.meyer for your response.
We have a product catalog. We have 3 levels of categories. There are 45 level 0 categories and each level 0 has further level 1 and level 2. WHile some facets may be common across categories, there are many facets which are specific to category. Our index is designed to hold the products from all categories and that is the reason that we are having 290+ attributes as facets. But at any point in time, not all of these facets will be applicable because facets will be category specific. On an average a category may have min.5 to max 30 facets, is what I can say.
So with this design, will there still be an issue due to the large number of facets or any performance issues during indexing?
From our perspective that is definitely a high level of facets. I’ve seen other customers raise concern when they go above 200. It will have an impact on indexing times but I can’t say how much.
As I mentioned we don’t have an upper bound on facets, besides the “searchable” facets, so the best I can say is “try it and see if the indexing lag is acceptable”.
If it’s not, anything you can do to reduce this number will lower indexing time.
Would it make sense to have an index for each toplevel or a group of toplevels?
So customer first selects category group before getting the category(-group) specific facets?
I was thinking of either having one index for each category or grouping categories alphabetically for each index. For browse/navigation scenarios where user would navigate from top navigation to any category, this would work.
For search scenarios,
- will this need like a federated search or querying all the indices whenever a search happens?
- How will the relevance work? I mean will Algolia show the records from all the indices together based on relevance or will that be left to us to rank them?
Sorry, I’m just a (new) user, bringing my uninformed ideas to the discussion.
Love to see other community members chiming in @leifnel – thanks for stepping up!
@tina.oswal – yes, if you do a mutli-index approach it would have to federated and each category would have its own section of results, ranked separately. So the down side is you no longer have a single, ranked result set. But the upside is you aren’t exposing 200+ facet controls to the end user. It’s hard to recommend one approach over the other without understanding the discovery flow your customers are use to.